Skip to main content

点・線分・直線

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) 節点を明示した木を描く

Displayed

クリックで拡大

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に関して23π\frac{2}{3}\piだけ回転した点
点 D は点 (5,2) を,Bに関して π3\frac{\pi}{3}だけ回転した点
点 E は点 (3,0) を A に関して π4-\frac{\pi}{4}だけ回転した点

Scalepoint(点,比率ベクトル,中心)

点の位置の拡大・縮小を行う

説明

点を,指定された中心を原点とする座標系で,比率ベクトルの分だけ拡大・縮小した位置の座標を返す。 【例】点 A~F は作図ツールで適当な位置にとっておく。
点 D を,点 A を原点を中心に横に 3 倍,縦に 2 倍した位置に置く。
点 E を,点 A を点 B を中心に横に 3 倍,縦に 2 倍した位置に置く。
点 F を,点 A を原点を中心にベクトル OC\overrightarrow{OC} で示された比率の位置に置く。

点 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 が負のときは延長する。

【例】オプションの設定とその結果を示す。

Displayed

クリックで拡大

【例】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"]); でよい。

【例】有限フーリエ級数展開

π2+n=0301(1)nnsinnx\frac{\pi}{2}+\sum_{n=0}^{30}\frac{1-\left(-1\right)^n}{n} \sin nx

次のように Cindyscript で関数を定義し,プロットデータ pd を作って引数に渡す。

Displayed

クリックで拡大

リストの長さには制限がある。たとえば,タートルグラフィクスを用いたシェルピンスキーのギャスケットで は 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 に番号を付けたものとなる。整数でない数を指定した場合は,きちんと閉じない折れ線が描かれる。

【例】

Displayed

クリックで拡大

円に内接する形でなく,与えられた線分 AB を1辺とする正多角形を描くには次のようにする。
線分 AB は,Cinderella の作図ツールなどで描かれているものとする。ただし,線分でなく,両端の点が与えられているだけでもよい。Cindyscript で点 A,B が複素平面上にあるものとして,多角形の頂点の位置を計算する。

【例】AB を 1 辺とする正五角形を描く。

Displayed

クリックで拡大

pti は,各頂点に対応する複素数のリスト,pt が各頂点の座標のリストである。