今度は何か絵を描くための関数について書かせていただきます。 何かを描くにはSetPort(FrontWindow());などを実行してある必要があります。(FrontWindow()は一番前のウインドウへのポインタを返します。直接WindowPtr型のポインタを引数にしてもいいです。) まず、色を変える関数。色にはRGBColor型を使うのがいいでしょう。RGBColor型に値を代入するには、それぞれのメンバに代入する必要があります。 例としては、 RGBColor color; color.red = 0x****; color.greeen = 0x****; color.bule = 0x****; //****には、0〜Fまでの16進数をいれる。という感じになります。ちなみに、0x0000に近ければ黒に近く、0xFFFFに近ければ白に近くなります。 塗る色を変えるには、RGBForeColor( &colour );を呼び出します。 実際に描画する例として、線と長方形(Rect型)を使うものを挙げます。 まず線について MoveTo( a, b ); LineTo( c, d );aは、線を引き始める点のローカル座標での横座標、bは、線を引き始める点のローカル座標での縦座標、cは、線を引き終わる点のローカル座標での横座標、dは、線を引き終わる点のローカル座標での縦座標です。ローカル座標というのはSetPort()で描画される事を指定されたウインドウの左上からの座標のことです。 上のようにMoveTo()とLineTo()を使えば線を書くことが出来ますが、今描画し終わった点から線を引きたい場合は直接LineTo()を呼び出してください。 次に長方形を使用するタイプのもの 四角形にはRect型を使います。Rect型に値を代入するには、 SetRect( &theRect, left, right, top, bottom );の形で行います。ちなみに、theRectは代入したいRectで、leftはRectの左端のローカル座標、rightはRectの右端のローカル座標、topRectはRectの上端のローカル座標、bottomRectはRectの下端のローカル座標です。 実際の書き方。
PaintRect( &theRect ); FrameRect( &theRect ); InvertRect( &theRect ); Rectは長方形。 PaintOval( &theRect ); FrameRect( &theRect ); InvertOval( &theRect ); Ovalは楕円。 PaintRoundRect( &theRect, w, h ); FrameRoundRect( &theRect, w, h ); InvertRoundRect( &theRect, w, h ); RoundRectは角が丸まった長方形。 PaintArc( &theRect, start, angle ); FrameArc( &theRect, start, angle ); InvertArc( &theRect, start, angle ); Arcは弧。 Rect型を使うのは多分以上のものだけのはずです。 |