出于某种奇怪的原因,当循环结束时,变量“角度”不会重置为 0。所有的数学只是计算 c = sqrt(a^2 + b^2 - 2abCos(theta)) 机器人不会在一行中完成所有的数学。在完整代码中,a 和 b 都是变化变量,并且基于超声波传感器输入。
sub 最多可以调用 3 次不同的时间,并且每次调用 sub 时角度变量都需要从 0 开始。
我试过把 float angle = 0; 或者只是角度= 0;在每个可以想象的地方,但没有任何效果。我什至尝试过使用 int angle = 0; 在多个地方。
int angle, a, b, c, csqr, theta, cosTheta, aSqrd, bSqrd, atmb, twoab;
#define pi 3.14159265359
sub calculate()
{
repeat(2)
{
float a = 172.42;
float angle = angle + 3;
float theta = ((angle)*(pi/180));
float b = 172.42;
float cosTheta = cos(theta);
float aSqrd = pow(a, 2);
float bSqrd = pow(b, 2);
float atmb = (a * b);
float twoab = (2 * atmb);
float csqr = ((aSqrd + bSqrd) - (twoab * cosTheta));
float c = sqrt(csqr);
NumOut(0,0,angle);
Wait(3000);
ClearScreen();
}
float angle = 0;
}
task main()
{
calculate();
ClearScreen();
calculate();
}