Circle()は、中心点と半径を指定して円を描きます。後続の引数は追加の半径を指定します。
win = New Window( "円",
Graph Box( Frame Size( 200, 200 ),
Circle( {50, 50}, 10, 12, 25 )
)
);
Circle()には、オプションの最後の引数"fill"もあります。これを指定すると、関数内に定義された円はすべて、現在fill colorで指定されている色で塗りつぶされます。"fill"が省略された場合、円は塗りつぶされません。
図12.15 円を描く
グラフの縦横比を変更しても、Circle関数によって描かれた円は常に円のままです。グラフのサイズを変更した際に、それに合わせて円も異なる縦横比に変更されるようにしたい場合には、楕円を描くOval関数を使用してください。
グラフのサイズを変更しても、円のサイズは変更されないようにしたい場合には、半径をピクセルで指定してください。
win = New Window( "円",
Graph Box(
Frame Size( 200, 200 ),
Circle( {50, 50}, Pixel Radius( 10 ), Pixel Radius( 12 ), Pixel Radius( 25 ) )
)
);
Rect()は、指定された対角座標に基づいて長方形を描きます。座標は順序に従った4つの引数(左、上、右、下)か、またはペアのリスト({左,上}、 {右, 下})で指定できます。
win = New Window( "長方形",
Graph Box(
Frame Size( 200, 200 ),
Pen Color( 1 );
Rect( 0, 40, 60, 0 );
Pen Color( 3 );
Rect( 10, 60, 70, 10 );
Pen Color( 4 );
Rect( 50, 90, 90, 50 );
Pen Color( 5 );
Rect( 0, 80, 70, 70 );
)
);
Rect()には、オプションの第5引数fill(塗りつぶし)があります。長方形を塗りつぶさない場合は0を、塗りつぶす場合は1を指定します。fillのデフォルト値は0です。長方形は、現在fill colorで指定されている色で塗りつぶされます。
塗りつぶし(fill)の引数が負の値の場合は、塗りつぶしなしの1ピクセルの枠が生成されます。
win = New Window( "長方形の枠",
Graph Box( Frame Size( 200, 200 ), Rect( 0, 40, 60, 0, -1 ) )
);
Oval()は、引数x1、y1、x2、y2で指定された長方形に内接する楕円を描きます。
win = New Window( "楕円",
Graph Box(
Frame Size( 200, 200 ),
Pen Color( 1 );
Oval( 0, 40, 60, 0 );
Pen Color( 3 );
Oval( 10, 60, 70, 10 );
Pen Color( 4 );
Oval( 50, 90, 90, 50 );
Pen Color( 5 );
Oval( 0, 80, 70, 70 );
)
);
Oval()にも、オプションの第5引数fill(塗りつぶし)があります。楕円を塗りつぶさない場合は0を、塗りつぶす場合は1を指定します。fillのデフォルト値は0です。楕円は、現在fill colorで指定されている色で塗りつぶされます。
図12.16は、長方形と楕円のグラフです。塗りつぶした場合と、塗りつぶしていない場合の両方を示しています。塗りつぶしを行ったグラフを見ると、長方形には輪郭がなく、楕円には輪郭があります。塗りつぶした長方形に輪郭を描きたい場合は、まず塗りつぶした長方形を描いてから、その後、同じ座標を使用して塗りつぶしていない長方形を描いてください。
図12.16 長方形と楕円(塗りつぶしあり/なし)