ちょっと、次の関数から「Not a Number」の戻り値を取得しています:
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) の方向ベクトルを含む
どんな助けでも大歓迎です!