嘿,我从以下函数获得“非数字”的返回值:
void Spider::setAngles(double x,double y, double l1, double l2){
double theta1, theta2;
theta2=acos((pow(x,2)+pow(y,2)-pow(l1,2)-pow(l2,2))/(2*l1*l2));
cout<<theta2* 180/PI<<endl;
theta1=(-((l2*sin(theta2)*x)+(l1+l2*cos(theta2)*y))/((l2*sin(theta2)*y)+ (l1+l2*cos(theta2)*x)))* 180/PI;
cout<<theta1;
}
我知道 ACos 需要一个介于 -1 和 1 之间的参数值,但我无法弄清楚如何做到这一点,如果说末端执行器点位于 (15,15) 且长度都等于 2...
我需要标准化一切吗?包括关节之间的距离,以及从 (0,0)->(15,15) 的方向向量
任何帮助将不胜感激!