Line()は、点と点を結ぶ線を引きます。
win = New Window( "星",
Graph Box(
Frame Size( 300, 300 ),
X Scale( -1.1, 1.1 ),
Y Scale( -1.1, 1.1 ),
Line(
{Cos( 1 * Pi() / 10 ), Sin( 1 * Pi() / 10 )},
{Cos( 9 * Pi() / 10 ), Sin( 9 * Pi() / 10 )},
{Cos( 17 * Pi() / 10 ), Sin( 17 * Pi() / 10 )},
{Cos( 5 * Pi() / 10 ), Sin( 5 * Pi() / 10 )},
{Cos( 13 * Pi() / 10 ), Sin( 13 * Pi() / 10 )},
{Cos( 1 * Pi() / 10 ), Sin( 1 * Pi() / 10 )}
)
)
);
図12.10 線を使って星を描く
点は、上に示したような2項目のリストか、またはx座標とy座標の行列で指定できます。行列の値は、1行目から順番に使われていくので、要素の数が同じであれば、行ベクトルと列ベクトルのどちらでも使用できます。以下の式は、まったく同じ効果を持ちます。
Line( {1,2}, {3,0}, {2,4} ); // 複数の{x,y}リスト
Line( [1 3 2],[2 0 4] ); // 行のベクトル
Line( [1,3,2], [2,0,4] ); // 列のベクトル
Line( [1 3 2], [2,0,4] ); // 行ベクトルと列ベクトルの組み合わせ
したがって、星の例は、以下のような方法で描くこともできます。行列の値を式で入力しているので、簡略形の[ ]ではなく、正式なMatrix( {...} )表記を使う必要があります。次の例は、Matrix()関数を使用しています。
win = New Window( "星",
Graph Box(
Frame Size( 300, 300 ),
X Scale( -1.1, 1.1 ),
Y Scale( -1.1, 1.1 ),
Line(
Matrix(
{ // x座標
Cos( 1 * Pi() / 10 ), Cos( 9 * Pi() / 10 ), Cos( 17 * Pi() / 10 ),
Cos( 5 * Pi() / 10 ), Cos( 13 * Pi() / 10 ), Cos( 1 * Pi() / 10 )}
),
Matrix(
{ // y座標
Sin( 1 * Pi() / 10 ), Sin( 9 * Pi() / 10 ), Sin( 17 * Pi() / 10 ),
Sin( 5 * Pi() / 10 ), Sin( 13 * Pi() / 10 ), Sin( 1 * Pi() / 10 )}
)
) ) );
HLine()は、グラフ上の指定されたy値の位置に横線を引きます。同様に、VLine()は、グラフ上の指定されたx値の位置に縦線を引きます。どちらの関数でも、引数に行列を指定することによって、複数の線を描くことができます。Mousetrap()を参照してください。