点・線
Pointdata3d(name, point_list, options)
点の3Dデータと2Dデータを作成し, 画面とに出力する.
説明
options
はPointdata()
と同様.
【例】
Pointdata3d("1", [[1, 1, 1], [0 ,1, 0]], ["Size=2", "Color=red"]);
Putpoint3d(list, option)
空間に幾何点を作図する.
説明
点の名称と座標を与えて点を作図する. 複数の点を一度に作図できる.
option
はfix
(初期設定)またはfree
. リスト["free"]
にしてもよい.
fix
では, 固定点とする.
同じ名称の点が既に存在する場合は, 指定した位置に移動して固定点とする.
free
では, 自由点とする. 同じ名称の点が既に存在する場合は何もしない.
【例】いくつか記述例を示す.
Putpoint3d(["A",[2,1,3]]);
Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");
Putpoint3d(["A",[2,1,3]],"free");
なおこの関数は幾何点を作るものであり, には出力されない.
に点を出力するにはPointdata()
を併用する.
空間における店の座標は, 店名に3d
を付加した名前の変数に代入される.
例えば点の座標はA3d
である.
これにより, 点の座標を取得できる.
Putaxes3d([x, y, z])
軸上に幾何点を作る.
説明
引数のリスト[x, y, z]
に対し,
点, ,
及び原点を主画面上にとり,
副画面上に対応する点, , , を作る.
既に同じ名称の点がある場合, 指定された位置に移動する.
引数は実数にすることもでき, Putaxes3d(a)
, Putaxes3d([a, a, a])
と同じになる.
【例】原点と, , を作る.
Putaxes3d(5);
原点と, , を作る.
Putaxes3d([1, 2, 3]);
Putoncurve3d(point_name, PD)
空間曲線上に点をとる.
説明
プロットデータPDの曲線上に点名の点をとる. 取った点を固定点ではなく, 曲線上にインシデントとなる. 従って, ドラッグして曲線上を動かすことができる.
例はPartcrv3d()
を参照.
Putonseg3d(point_name, point1, point2)
線分上に点を作る.
説明
point1
とpoint2
の中点に指定された名前の点をとる.
point1
とpoint2
が線分として結ばれていなくてもよい.
とった点は線分にインシデントとなる(線分が描かれていなくても).
point1
とpoint2
はリストにすることもできる.
指定した点が既に存在する場合は動かさない.
point1
, point2
は幾何点の名称または座標が指定する.
【例】との中点に点をとる. 次のいずれでもよい.
Putonseg3d("C", A, B);
Putonseg3d("C", [A, B]);
Putonseg3d("C", [[1, -1, 0], [0, 2, 2]]);
Spaceline(name, list)
折れ線を描く.
説明
点の名称または座標のリストを与えて折れ線を描く.
平面でのListplot()
にあたる.
options
はdr
, da
, do
で線種を指定する.
点の名前が必要であれば以下のようにして名前リストを作ることができる.
pname=apply(1..6, "P"+text(#));
【例】指定された2点を結んだ線分を描く.
Spaceline("1", [[2, 5, 1], [4, 2, 3]]);
作図されている2点を結んだ三角形を描く.
Spaceline("2", [A, B, C, A]);
接点を表示する場合はPointdata3d()
で描画する.
Spacecurve(name, formula, range, options)
空間曲線を描く.
説明
媒介変数で表された曲線を描く.
option
は解像度Num
.
【例】螺旋を描く.
Bezier3d(name, list_1, list_2)
空間ベジェ曲線を描く.
説明
引数はlist_1
が端点リスト, list_2
が制御点リスト.
1組の端点につき2つの制御点を使う.
【例】いくつかの点をベジェ曲線で結ぶ.
端点に対し制御点をとする.
Bezier3d("1", ["A", "B"], ["D", "E"]);
端点に対し制御点をとし, 端点に 対し制御点をとする.
Bezier3d("1", ["A", "B", "C"], ["D", "E", "E", "F"]);
端点に対し制御点をとし, 端点に対し制御点をとする.
保留
Mkbezierptcrv3d(point_list)
制御点を自動的にとる空間ベジェ曲線.
説明
リストで与えた点に対し, 制御点を自動的に生成してベジェ曲線を描く. 制御点は2つの点に対して, その点を端点とする線分上に2つ作られる. これを移動して任意の曲線にすることができる.
【例】線分上に2点a1p
, a1q
,
線分上に2点a2p
, a2q
,
線分上に2点a3p
, a3q
ができる.
Mkbezierptcrv3d(["A","B","C","D"]);
保留
Skeletonparadata(name, list_PD, list_PD, option)
陰線処理を行う.
説明
描画されている線と軸について陰線処理を行う.
第2引数の線が第3引数の線によって隠される部分を消去する.
それらを省略した場合は全ての線について互いの陰線処理を行う.
option
は消去する部分の長さを指定できる.
他のオプションとして
No=point_list
: 点リストの点が選ばれているときは実行しない.File=y/m/n(n)
: データファイルを作るか.Check=point_list
: 点リストの点が変更されていたらファイルを作り直す.
【例】螺旋と線分, 座標軸の陰線処理. 次のように螺旋と線分座標軸を描いておく.
Xyzax3data("", "x=[-5, 5]", "y=[-5, 4]", "z=[-5, 3]");
Putpoint3d(["A", [0, -2, -2]]);
Putpoint3d(["B", [-1, 1, 3]]);
Spaceline([A, B]);
Spacecurve("1", "[2*cos(t), 2*sin(t), 0.2*t]", "t=[0, 4*pi]", ["Num=100"]);
保留
座標軸のプロットデータはax3d
, 線分はAB3d
, 螺旋はsc3d1
である.
これに対し, 描画されている線と軸について陰線処理を行うには以下のようにする.
Skeletonparadata("1");
重なった部分の消去する長さを2にするには
Skeletonparadata("1", [2]);
螺旋によって隠れる部分だけを消去するには,
Skeletonparadata("1", ["AB3d", "ax3d"], ["sc3d1"]);
この他にも以下のようなことも可能.
Skeletonparadata("1", ["AB3d", "ax3d"], ["sc3d1"], [2]);
Skeletonparadata("1", ["AB3d"], ["ax3d", "sc3d1"]);