vex: 三角関数 - miyagiA/MyLearningNote GitHub Wiki
float atan2(float y, float x)・・・平面上のベクトルの角度を調べたいならこれ!
//前提{0,1,2}のポイントを持つラインをインプット
//ポイント座標の基礎配置
//-------------------------------------
float theta=radians(chf("theta"));
vector pos=0;
if(@ptnum==0){@P=set(1,0,0);}
else if(@ptnum==1){@P=set(0,0,0);}
else{
pos=set(cos(theta),0,sin(theta));
@P=pos;
}
//-------------------------------------
//atan2 の挙動をテスト!
//-------------------------------------
if(@ptnum==2)
{
//atan でベクターが変えてくるのは、ポジションなのか回転量なのか?
//atan2 は vexでは(y,x)の順に引数をとり radians をかえす。
//が -πからπ しか返さないので、
//★★★ if(y<0){ float angle=360+degrees(atan(y,x));} ★★★
f@atan=degrees(atan(pos.z,pos.x));
if(pos.z<0){f@atan=360+f@atan;}
}
//-------------------------------------
vector atan(vector) ・・・正直、挙動も使いどころもかわからん!
//vector atan(vector) の挙動をテスト!
//-------------------------------------
//何に使うのかよくわからんかった・・・
//とりあえず atan2(y,x)他のツールと関数の中身が違う気がするけど・・・アークを求めるならこっち使おう!
//vector atan(vector)もまた混ざるとはまるので注意!
v@vector_atan=degrees(atan(@P));
//-------------------------------------