我有这段代码。
for(int j=0; j<=n; j++)
{
Xnew2 = -j*(Y+R2)/n;
Ynew2 = pow((((Y+R2)*(Y+R2)) - (Xnew2*Xnew2)), 0.5);
if(abs(Ynew2) <=R1)
cout<<"\n("<<Xnew2<<", "<<Ynew2<<")"<<endl;
AngleB2 = acos(Xnew2/pow((pow(Xnew2, 2))+(pow(Ynew2, 2)), 0.5))* (180/Pi);
cout<<"\nAngle 'B' = "<<AngleB2<<" Degrees"<<endl;
AngleV2 = acos(((pow(Xnew2, 2))+(pow(Ynew2, 2))+(pow(100, 2))-(pow(65, 2)))/(200*(pow(((pow(Xnew2, 2))+(pow(Ynew2, 2))), 0.5))))* (180/Pi);
cout<<"Angle 'V' = "<<AngleV2<<" Degrees"<<endl;
AngleTheta12 = AngleB2 - AngleV2;
cout<<"Theta 1 = "<<AngleTheta12<<" Degrees"<<endl;
AngleTheta22 =(asin(pow(((sin(AngleV2*Pi/180))*(pow(((pow(Xnew2, 2))+(pow(Ynew2, 2))), 0.5))/65), 0.5)))*(180/Pi);
cout<<"Theta 2 = "<<AngleTheta22<<" Degrees"<<endl;
}
我们正在设计一个机器人手的程序,以便能够绘制Syastro Letter'K',它基本上是一个Crecent Moon。我们必须首先计算曲线上的点,并计算机器人手臂的角度,如上所示。
当没有任何限制时(我在计算形状外线的点/角度时),我设法使代码工作,但是一旦我尝试对'for'循环施加限制,它就会不要丢失分数,但仍然列出很多角度......
有谁知道我哪里出错了?我试图限制值,以便'Y'坐标必须在310和-310之间。
如果您理解这一点,谢谢!