0

我有这个代码。

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 之间。

谢谢,如果你明白这一点!

4

0 回答 0