我有这个代码。
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 字母“K”,它本质上是一个新月。我们必须首先计算曲线上的点,然后计算机械臂的角度,如上图所示。
当不涉及限制时(计算形状外线的点/角度时),我已经设法让我的代码工作,但是一旦我尝试将限制强加到“for”循环中,它就不会给出丢了点,但还是列出了很多角度....
有谁知道我哪里出错了?我试图限制这些值,以便“Y”坐标必须在 310 和 -310 之间。
谢谢,如果你明白这一点!