領域に斜線を描く(ハッチング)
Last modified: 2019 年 03 月 21 日 00 時
直線や曲線で囲まれた領域に斜線を描く(ハッチング)。KeTpic版の焼き直し。
主な使用関数: Hatchdata, Listplot, Circledata, Letter.
Cinderella 2での作図
KeTCindyのスクリプトを利用したいので、templete1basic.cdyなどを開いて、これを別名に保存します。
まず、冒頭のような図形をCinderella 2で描きます。
点Aを原点に据えて、これを中心とし、半径を線分ABとする円を描き、中点ツールで点Cを置きます。CindyScriptで、Circledata("1",[A,B], ["Num=400"]); として、円のプロットデータにcr1という名前が付けます。Circledata("2",[C,B], ["Num=400"]);で、cr2という名前が付きます:
Circledata("1",[A,B], ["Num=400"]); //円の描画
Circledata("2",[C,B], ["Num=400"]); //Numは分割数
Listplot("1",[D,A]);
Drwpt([C]);
Letter(A, "sw", "O"); //各点に記号を書き込む
Expr(C, "s2", "1");
Expr(B, "se", "2");
線分DAの描画は座標軸と重なるので不要ですが、領域の指定のときにこのプロットデータを使います。
[このページのトップへ]
ハッチング
大円の内部(i)、小円の外部(o)、線分DAの右側(e)の共通部分に斜線を引きます:
Hatchdata("1",["ioi"],[["cr1"],["cr2"],["sg1","e"]],[30,0.8,"dr,0.7"]);
[["cr1"],["cr2"],["sg1","e"]]
が曲線または閉曲線のリスト、["ioi"]がそれぞれの(閉)曲線の内部(i)または外部(o)を指定しています。直線や関数のグラフなど閉曲線ではない場合、["sg1","e"]のように、n,s,e,wをプロットデータとともに指定します。
Hatchdataの実行は少し時間がかかります。
[このページのトップへ]サンプルファイルとCindyScriptコード
サンプルファイル(.cdy)のダウンロード
以下はDraw部分のコード:
Ketinit();
Addax(1); //座標軸を描く
Setpen(1.5);
Ptsize(2);
Setunitlen("7mm");
Circledata("1",[A,B], ["Num=400"]); //円の描画
Circledata("2",[C,B], ["Num=400"]); //Numは分割数
Listplot("1",[D,A]);
Drwpt([C]);
Letter(A, "sw", "O"); //各点に記号を書き込む
Expr(C, "s2", "1");
Expr(B, "se", "2");
Hatchdata("1",["ioi"],[["cr1"],["cr2"],["sg1","e"]],[30,0.8,"dr,0.7"]);
//Figpdf();
Windispg();
//Help("List");
[このページのトップへ]