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));
//-------------------------------------