2)初期中心座標

 曲線の一部となる円の最初の中心座標を求めます。
//**********************************************************************************
   入力 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
//**********************************************************************************