曲線の一部となる円の最初の中心座標を求めます。
//**********************************************************************************
入力 Mx :接線の傾き
Px1:始めの点のx座標値 Pz1:始めの点のz座標値
Px2:終りの点のx座標値 Pz2:終りの点のz座標値
出力 Ox0:最初の円の中心となるx座標値
Oz0:最初の円の中心となるz座標値
//**********************************************************************************
#macro Beginning_center(Mx,Px1,Pz1,Px2,Pz2,Ox0,Oz0)
#local Oc=0;
#if( (Px1=Px2 & tan(pi/2)=Mx) | (Px1=Px2 & tan(pi*3/2)=Mx) ) #local Oc=3; #end
#if( 0=Mx*(Px2-Px1)-(Pz2-Pz1) | Mx*(Pz2-Pz1)+(Px2-Px1)=0 ) #local Oc=3; #end
#if(Oc=0)
#if(Mx=0) #local Mx=1e-12; #end
#local A= 2*( (Pz2-Pz1)-Mx*(Px2-Px1) );
#local B=-2*(Px2-Px1)*(Mx*Pz1+Px1);
#local C=(pow(Px2,2)-pow(Px1,2))+(pow(Pz2,2)-pow(Pz1,2));
#local Oz0=(B+C)/A; #local Ox0=Mx*(Pz1-Oz0)+Px1;
#end
#end
//**********************************************************************************