- まず,スプライン曲線のための節点A,B,C,D,EおよびF,G,H,K,Lをとっておく.
- 制御点の取り方は大島利雄氏考案の方法を用いる.
Setcolor([0.3,0,0,0]);
// cmykで色を指定
Shade(["en1"]);
// en1(後で定義)の内部を塗る.
// 注)Shadeはプロットデータの作成はしない
// TeXでの書き出しだけなので,ここにおいてよい.
// 境界線の前にShadeしないと色のはみ出しがあってきたない.
Setcolor([0.3,0,0,0.3]);
Shade(["en2"]);
Setcolor("black");
Ospline("1",[A,B,C,D,E]);
Ospline("2",[F,G,H,K,L]);
// Osplineは大島公式によるベジェスプラインを描くコマンド
Putpoint("P",[1,0],[P.x,0]);
Putpoint("Q",[2,0],[Q.x,0]);
// Pを最初[1,0]にとり,その後は[P.x,0]に移動する.
// したがって,x軸上を動く半自由点になる.
// それぞれの曲線の名前は bzo1, bzo2 である.
Putoncurve("P1","bzo1",[P.x,P.x]);
Putoncurve("P2","bzo2",[P.x,P.x]);
Putoncurve("Q1","bzo1",[Q.x,Q.x]);
Putoncurve("Q2","bzo2",[Q.x,Q.x]);
// P1をbzo1上のx座標がP.xである点にとる.
// 注)最後の引数を区間[a, b]にとれば,その範囲内を動く.
// 最後の引数がなければ,最初の位置は曲線の左端
Listplot("1",[P1,P]);
Listplot("2",[Q1,Q]);
Listplot("3",[P,Q]);
Enclosing("1",["bzo2","Invert(sg2)","Invert(bzo1)","sg1"],[P2,"notex"]);
Enclosing("2",["sg3","Invert(sg2)","Invert(bzo2)","sg1"],[P,"notex"]);
// Enclosingは曲線を順に結んだ閉曲線を作るコマンド
// 注)最初の交点で次の曲線に行く
// 曲線には向きが必要.Invertは曲線の向きを変えるコマンド
// オプションの点(P2, P)はスタートの点
Expr([B,"s2","y=f(x)",G,"n2","y=g(x)"]);
Expr([M,"c","S",N,"c","S_2"]);
Htickmark([P.x,"a",Q.x,"b"]);
最終更新:2016年10月30日 14:25