点・線分・直線
Pointdata(name , 点リスト , options)
点のデータを作成する。
説明
与えられた座標の点データを作成する。オプションは"Size=","Color=","Inside="。
Inside オプションは,点の内部についての指定(n : 内部を塗らない,color:内部色)
【例】座標指定で 2 つの点データを作る。
Pointdata("1",[[1,2],[-2,3]]);
【例】 (1) 座標指定で 2 つの点データを作る。
Pointdata("1",[[1,2],[-2,3]]);
(2) 作図した点 A,B について,点データを作る。
Pointdata("1",[A,B]);
A,B が作図されていない場合は作成されない。
Cinderella の描画面上では既存の点 A,B に黒の点が重なって表示される。
(3) A の位置に大きさ 4 で点を作る。
Pointdata("1",A,["Size=4"]);
(4) 点データを作り,オプション(内部を塗らない)で描く
Pointdata("1",[A,B],["Inside=n"]);
(5) 点データを作り,オプション(内部を白塗り)で描く
Pointdata("1",[A,B],["Inside=white"]);
(6) 点データを作るが,TeX には出力しない
Pointdata("1",[[3,4],[5,6]],["notex"]);
(7) 点データを作るが,TeX には出力せず画面上にも表示しない。
Pointdata("1",[[3,4],[5,6]],["nodisp"]);
(8) 節点を明示した木を描く
クリックで拡大
Putpoint(点名 , 座標1 , 座標 2 )
点を作る
説明
識別名が点名の点を,既存で なければ座標1に作る。既存ならば座標 2 に移動する。Tex には出力されない。
【例】点 A を作る。 (1,1) に固定点 A を作る。 この点は動かすことができない。
Putpoint("A",[1,1]);
(1,1) に自由点を作るには次のようにする。
Putpoint("A",[1,1],[A.x,A.y]);
この点は座標 2 の効果により,自由点となり,ドラッグして動かすことができる。
Putintersect(点名 , PD1 , PD2 , [No] )
2 曲線の交点を作る
説明
PD1,PD2 は 2 曲線のプロットデータ名。作成される点は幾何点。
描画範囲に交点が1つだけのとき,第 4 引数がなくても交点が作られる。
描画範囲に 2 つ以上の交点がある場合,第 4 引数を省略するとコンソールに交点の座標のリストと,「Choose point number 」というガイドが表示される。そこで,引数の No として,その番号を指定すると,その点が作られる。この関数で作成されるのは幾何点だけなので,TEX の図に点として明示するためには Pointdata() で書き出す。
注)交点が存在しない場合は,「No intersect point」がコンソールに表示される。
次の例は,3 次曲線と直線の交点を 3 つとも取ったものである。
Plotdata("1","x^3-4*x","x",["Num=200"]);
Plotdata("2","1/2*x+1","x");
Putintersect("P","gr1","gr2",1);
Putintersect("Q","gr1","gr2",2);
Putintersect("R","gr1","gr2",3);
Pointdata("1",[P,Q,R],["size=4"]);
Putoncurve(点の名前, プロットデータ, options)
曲線上に点を乗せる。
説明
点が存在しない場合は新たに作る。すでにその点が存在する場合は,その点の x 座標を使う。初期値の x 座標の 初期設定は 0。
options は,x 座標の範囲をリストで与える。
【例】アステロイド上の動点 P をとる。
点 P がアステロイド上にでき,この点はドラッグするとアステロイド上を −1 ≤ x ≤ 1 の範囲で動かすことができる。ただし,-1,1 の付近は y 座標の判断の関係でぴったりはいかない。
Putonline(点名 , 座標1 , 座標 2 )
直線上に点を作る
説明
座標1,座標 2 を通る直線上に点名の点を作る。できた点は直線上しか動かない
【例】点 A, B を通る直線上に点 P をとる。
Putonseg(点名 , 座標1 , 座標 2 )
線分上に点を作る
説明
座標1,座標 2 を端点とする線分上に点名の点を作る。できた点は線分上しか動かない。指定した点がすでに存在する場合は動かさない。
【例】
線分 AB 上に点 P をとる。
点 (-1,0),(2,2) を通る線分上に点 C をとる。
Putonseg("C",[[-1,0],[2,2]]);
Reflectpoint(点,対称点または対称軸)
点の鏡映の座標を返す。
説明
点を指定された点または軸に関して対称移動した点の座標を返す。対称軸は [ 点 1, 点 2 ] で指定
【例】点 A~F を作図しておき,C~F を A の鏡映の位置に配置する。 Cは B に関して A と対称な点 Dは点 (2,3) に関して A と対称な点 E は点 (1,0) に関して (-1,1) と対称な点 F は直線 CE に関して A と対称な点
注)鏡映は Cinderella の作図ツールでも作成することができる。場合によっては Cinderella で作図する方が 簡明である。
Rotatepoint(点 ,角度 , 中心)
点の位置を回転する
説明
点を,中心で示された点の周りに回転した座標を返す 。角度は弧度法で与える
点 A~E は作図しておき,C~E をそれぞれの位置に配置する。
点 C は A を,Bに関してだけ回転した点
点 D は点 (5,2) を,Bに関して だけ回転した点
点 E は点 (3,0) を A に関して だけ回転した点
Scalepoint(点,比率ベクトル,中心)
点の位置の拡大・縮小を行う
説明
点を,指定された中心を原点とする座標系で,比率ベクトルの分だけ拡大・縮小した位置の座標を返す。
【例】点 A~F は作図ツールで適当な位置にとっておく。
点 D を,点 A を原点を中心に横に 3 倍,縦に 2 倍した位置に置く。
点 E を,点 A を点 B を中心に横に 3 倍,縦に 2 倍した位置に置く。
点 F を,点 A を原点を中心にベクトル で示された比率の位置に置く。
点 A,B,C をドラッグすると,インタラクティブに D,E,F の位置が変わる。
Translatepoint(点 , 移動ベクトル)
点を平行移動する
説明
点を移動ベクトルで示された分だけ平行移動した点の座標を返す
【例】点 A~D は作図しておく。
点 C を点 A を x 軸方向に 2 , y 軸方向に 3 だけ平行移動した点にする。
点 D を点 A をベクトル −−→OB だけ平行移動した点にする。
C.xy=Translatepoint(A,[2,3]);
D.xy=Translatepoint(A,B.xy);
Setarrow([arrowsize,angle,position,cut])
Arrowdata,Arrowhead で描く矢印のスタイルを設定する。
説明
arrowsize,angle,position,cut,linestyle は,順に大きさ (1),開き角 (18),位置 (1),切り込み (0.2) である。
(カッコ内はデフォルト値)
Arrowdata(name,[始点 , 終点] , options)
2 点間を結ぶ矢線を描く。
name はなくてもよい(自動的に通し番号をつける)。
options は矢じりの形状などの指定(リストで与える)。
数値は, 大きさ, 開き角, 位置, 切り込み
"Line=n(y)"
(矢印は線だけ),"Cutend="
(トリミング),"Color="
開き角は 60 分法で与 える。2.5 未満の時は 18°の倍数指定とする。
矢じり位置は,線分の長さを1とした始点からの距離。
切り込みのデフォルトは 0.2
トリミング :"Cutend=m"
または "Cutend=[m,n]"
で,右辺が数のときは両端を m だけカットする。リストのときは始点を m, 終点を n だけカットする。m が負のときは延長する。
【例】オプションの設定とその結果を示す。
クリックで拡大
【例】2つの円を矢線で結ぶ。
Circledata("1",[A,A.xy+[0.5,0]]);
Circledata("2",[B,B.xy+[0.7,0]]);
Arrowdata([A,B],["Cutend=[0.5,0.7]"]);
Letter([A,"c","A",B,"c","B"]);
Cinderella の作図ツールで2点 AB をとっておく。 円 A,B の半径が同じ(たとえば 0.5)であれば,Arrowdata([A,B],["Cutend=0.5"]); でよい。
Arrowhead
点に矢じりだけを描く(option は Setarrow と同じ)
Arrowhead(点 , 方向 , options)
説明
指定された位置に,指定された方向を向いた矢じりだけを描く。
点は座標または幾何要素名。方向は原点から見て座標 [a,b] の方向。
Arrowhead(点または位置比 , プロットデータ, options)
説明
プロットデータ(曲線)を指定したときは,曲線上の点に矢じりをつける。
曲線には向きがあり,それによって矢じりの向きが決まる。
"Invert(曲線名)" とすると反対向きの矢じりになる。
曲線の向きとは,曲線を描くときの順序で,プロットデータの順序でもある。
位置比は曲線上の位置を表す比率(0 から 1)。
例えば,分割数が 50 で位置比が 0.3 のとき 1+50*0.3=2.5
2 番目と 3 番目の点の中点
【例】 A が(1,1)のとき
(ア) Arrowhead(A,[-1,1]);
(イ) Arrowhead([1,1],[-1,1],[2,60]);
(ウ) Arrowhead(A,[-1,1],[2,30,0.5]]);
(エ) Arrowhead([1,1],[-1,1],[2,20,0.5,"Line=y"]);
曲線cr1 上の点 A の位置比が 0.6 のとき
(オ) Arrowhead(A,"cr1");
(カ) Arrowhead(0.6,"cr1",[2,1,0.5,"Color=red"]);
(キ) Arrowhead(1,"cr1");
(ク) Arrowhead(1,"Invert(cr1)",["Line=y"]);
Lineplot(name , 2 点のリスト , options)
2 点のリストで示された点を結ぶ直線を描く。
説明
2 点のリストは座標または幾何要素の名前で与える。
options は次の通り。
線種”dr, n”, ”da,m,n” , ”do,m,n”
”+”半直線を描く。
”dr” , ”da” , ”do” と ”+” はリストにして両方指定することができる。
点のリストが,座標ではなく幾何要素名のリストの場合は,name は省略できる。
いくつか例を示す。
各座標を結ぶ直線を引く
Lineplot("1",[[0,0],[1,2]])
Cinderella の描画ツールで 2 点 A,B をとっておき,直線 AB を引く
Lineplot([A,B]);
option の働きの例
Lineplot([A,B],["dr,0.5","+"]);
A を端点とする半直線を引く
Lineplot([C,D],["dr,2"]);
直線 CD を太さ 2 で描く
Lineplot([E,F],["da"]);
直線 EF を破線で描く
Lineplot([G,H],["do"]);
直線 GH を点線で描く
Listplot(name , 点のリスト , options)
点のリストで示された点を結ぶ。
説明
点のリストは座標または幾何要素名のリストで与える。点が,座標ではなく幾何要素名の場合は,name は省略可
プロットデータの名前は,”sg” に引数の name を付加したものとなる。
options は次の通り。
線種 ”dr, n”, ”da,m,n” , ”do,m,n”
トリミング :”Cutend=m” または ”Cutend=[m,n]”
数のときは両端を m だけカットする。リストのときは始点を m, 終点を n だけカットする。m が負のときは延長する。
options の使用例
Listplot([A,B]);
線分 AB を描く。太さは 初期設定。
Listplot([C,D],["dr,2"]);
線分 CD を描く。太さ 2
Listplot([E,F],["da"]);
線分 EF を破線で描く
Listplot([G,H],["da,3,1"]);
線分 GH を破線で描く。線を長く
Listplot([K,L],["da,1,3"]);
線分 KL を破線で描く。間隔を空ける
Listplot([M,N],["do"]);
線分 MN を点線で描く。
Listplot([O,P],["do,3"]);
線分 OP を点線で描く。間隔を空ける
Listplot([Q,R],["do,3,3"]);
線分 QR を点線で描く。間隔を空けて太く
【例】三角形を描く。 Cinderella の作図ツールで三角形 ABC を描いておく。あるいは,単に 3 点 A,B,C をとるだけでもよい。
Addax(0);
Listplot([A,B,C,A]);
点の位置は座標で指定してもよい。 その場合は name が必要。
Listplot("1",[[0,0],[2,0],[1,2],[0,0]]);
Cinderella の作図ツールで2点 AB をとっておく。
円 A,B の半径が同じであれば,Listplot([A,B],["Cutend=0.5"]);
でよい。
【例】有限フーリエ級数展開
次のように Cindyscript で関数を定義し,プロットデータ pd を作って引数に渡す。
クリックで拡大
リストの長さには制限がある。たとえば,タートルグラフィクスを用いたシェルピンスキーのギャスケットで は 200 くらいずつのリストに分割する。
Mksegments()
すべての幾何線分の PD を作成
説明
Cinderella の「線分を加える」ツールで描いたすべての線分をそのままプロットデータとする。たとえば,線 分 AB を作ると,プロットデータ sgAB が作成される。その後,インスペクタで点 B の識別名を変更(たとえ ば Q に)すると,プロットデータ名も変更される。線分はすでに描かれていてもよい。
【例】等比数列の例題
三角形の各辺の中点を結んでできる三角形を次々に作っていく,等比数列の図を描く。
まず「線分を加える」ツールで三角形 ABC を描く。
「中点を加える」ツールで各辺の中点を取り,「線分を加える」ツールで中点を結ぶ。
これを繰り返す。Mksegments() を書いておけば,Listplot([A,B,C] などを書かなくても,作図ができた時点で,図のデータができる。
Framedata(name , リスト,options)
矩形を描く
説明
リストの形は 2 通り。
その 1:[中心 , 横 , 縦] で,矩形を描く。横,縦は中心からの距離。
その 2:2 点のリスト。点が座標でなく名称のときは name は省略できる。
点の座標は点の名前でもよい。点を座標で与える場合は name は省略できない。
リストを省略した場合は,描画範囲と同一の矩形を描く。
その 2 のタイプでは,option として,”center” または ”corner” がある。”center” のときは,中心と対角点( 初期設定),”corner” のときは 2 点を対角点として解釈する。
以下にいくつか例を示す
Framedata("1");
描画範囲 (SW,NE) と同一の矩形を描 く
Framedata("2",[[0,0],2,2]);
原点を中心とする縦横幅 4 の正方形を描く
Framedata("3",[A,1.5,1.2]);
点 A を中心とする横 3,縦 2.4 の矩形を描く。
Framedata([B,C]);
点 B を中心, 点 C を頂点とする矩形を描く。
Framedata([D,E],["corner"]);
点 D,E を対角点とする矩形を描く。
矩形の角を丸めたい場合は,Framedata() ではなく,Ovaldata() を使うとよい。
Polygonplot(name , 点リスト , 整数,options)
2 点を半径とする円に内接する正多角形を描く。
説明
点リストを [A,B] とすると,A を中心とする半径 AB の円周上に点をとって正多角形を描く。ただし円は描かない。A,B は座標でもよい。
点リストが座標ではなく作図してある点の名称のとき,オプションに”Geo=y” をつけると,頂点の幾何点を作る。幾何点の名称は B に番号を付けたものとなる。整数でない数を指定した場合は,きちんと閉じない折れ線が描かれる。
【例】

クリックで拡大
円に内接する形でなく,与えられた線分 AB を1辺とする正多角形を描くには次のようにする。
線分 AB は,Cinderella の作図ツールなどで描かれているものとする。ただし,線分でなく,両端の点が与えられているだけでもよい。Cindyscript で点 A,B が複素平面上にあるものとして,多角形の頂点の位置を計算する。
【例】AB を 1 辺とする正五角形を描く。
クリックで拡大
pti は,各頂点に対応する複素数のリスト,pt が各頂点の座標のリストである。