グラフを描く(3)
VectorScriptを使ってVectorworksをグラフ作成ツールに変身させてみましょう。
棒グラフ、円グラフ、3Dグラフを描いてみましょう。最後はワークシート情報からグラフを描いてみます。
第3章 円グラフを描いてみる
つづいては、円グラフです。
円グラフは円弧図形を用いて描きます。
手続きArcByCenter(x, y, radius : REAL; startAngl, sweepAngle : REAL);
を使います。
円グラフは数値を円弧の角度に置き換えたデータを与えます。
始発角度は右水平を0度と考えて、円弧角は全体(360度)を100%とした場合の割合を角度として与えます。
描きはじめを上とするならば、90(度)から、描くたびに描きはじめの角度(startAngle)を変えていく必要があります。
PROCEDURE enGraph; VAR startAngle, sweepAngle : REAL; BEGIN startAngle := 90; sweepAngle := 50*360/(20+30+50); ArcByCenter( 0, 0, 50, startAngle, -sweepAngle ); startAngle := startAngle - sweepAngle; sweepAngle := 30*360/(20+30+50); ArcByCenter( 0, 0, 50, startAngle, -sweepAngle ); startAngle := startAngle - sweepAngle; sweepAngle := 20*360/(20+30+50); ArcByCenter( 0, 0, 50, startAngle, -sweepAngle ); END; Run( enGraph );
残念ながら、このままでは円が描けたように見えてしまいますので、前回にならって色を付けてみましょう。
PROCEDURE enGraph; VAR startAngle, sweepAngle : REAL; BEGIN startAngle := 90; FillBack( 0, 65535, 0 ); PenFore( 0, 65535, 0 ); sweepAngle := 50*360/(20+30+50); ArcByCenter( 0, 0, 50, startAngle, -sweepAngle ); startAngle := startAngle - sweepAngle; FillBack( 65535, 0, 0 ); PenFore( 65535, 0, 0 ); sweepAngle := 30*360/(20+30+50); ArcByCenter( 0, 0, 50, startAngle, -sweepAngle ); startAngle := startAngle - sweepAngle; FillBack( 0, 0, 65535 ); PenFore( 0, 0, 65535 ); sweepAngle := 20*360/(20+30+50); ArcByCenter( 0, 0, 50, startAngle, -sweepAngle ); END; Run( enGraph );