グラフィックの描画 (2/5)
作成:2013-09-07 11:04
更新:2013-09-07 11:04
更新:2013-09-07 11:04
■Pen/Brushクラスについて
Pen(ペン)は、図形の線分の部分(輪郭線など)の描画に関する情報を管理するクラスです。また、Brush(ブラシ)は、図形の内部を塗りつぶすための設定情報を管理するためのクラスです。
描画を行う際には、まずこれらのクラスのインスタンスを作成しておき、それを引数に指定して描画用メソッドを呼び出す、という形になります。
これらのうち、注意したいのはBrushです。Penは基本的に1つのクラスだけですが、Brushは多数のサブクラスが用意されており、それらによって塗りつぶし方が変わってきます。
まずは、これらのインスタンスの作成について整理しておきましょう。ここでは「SolidBrush」という、単色で塗りつぶすためのBrushについて説明しておきます。
●SolidBrushインスタンスの作成
●Penインスタンスの作成
SolidBrushは、引数に色の値であるColor(これはクラスではなくて、構造体という特殊な値です)を指定してnewします。これにより、指定の色で塗りつぶすためのSolidBrushインスタンスが作成されます。
Penは、ColorやBrushを引数に指定することで、その引数で線分を描くためのPenインスタンスを作成します。また第2引数に横幅の数値を指定することで、その幅で線分を描くためのPenを作ることもできます。
●構造体について
これらのインスタンス作成では、「Color」という色を示す値が用いられます。これは、「構造体」という値として用意されています。
構造体は、クラスと同じように内部に様々な値を保管しておくことのできる特別な値です。フィールドやメソッドなどを作成して必要なデータと処理をまとめることができますし、newで値を生成することもできます。構造体の定義も、クラス定義の「class」の代りに「struct」というのをつけるだけです。こうした基本部分はクラスと全く同じです。
ただし、クラスのように継承して新しいクラスを作ることはできません。またクラスのように参照として変数に値を保管せず、構造体の値がそのまま変数に保管されます。いわば「オブジェクト指向的な機能が削られたクラス」といったもの、と考えると良いでしょう。
Color構造体の中には、よく用いられる色の値が色名で登録済みになっています。例えば、Color.Redと指定すれば赤が使われる、というわけです。主な色名はほぼすべてColor内に用意されていますので、当分は「Colorの色名を指定して使うのが基本」と考えておくと良いでしょう。
描画を行う際には、まずこれらのクラスのインスタンスを作成しておき、それを引数に指定して描画用メソッドを呼び出す、という形になります。
これらのうち、注意したいのはBrushです。Penは基本的に1つのクラスだけですが、Brushは多数のサブクラスが用意されており、それらによって塗りつぶし方が変わってきます。
まずは、これらのインスタンスの作成について整理しておきましょう。ここでは「SolidBrush」という、単色で塗りつぶすためのBrushについて説明しておきます。
●SolidBrushインスタンスの作成
new SolidBrush(《Color》);
●Penインスタンスの作成
new Pen(《Color》);
new Pen(《Brush》);
new Pen(《Color》, 幅 );
new Pen(《Brush》, 幅 );
SolidBrushは、引数に色の値であるColor(これはクラスではなくて、構造体という特殊な値です)を指定してnewします。これにより、指定の色で塗りつぶすためのSolidBrushインスタンスが作成されます。
Penは、ColorやBrushを引数に指定することで、その引数で線分を描くためのPenインスタンスを作成します。また第2引数に横幅の数値を指定することで、その幅で線分を描くためのPenを作ることもできます。
●構造体について
これらのインスタンス作成では、「Color」という色を示す値が用いられます。これは、「構造体」という値として用意されています。
構造体は、クラスと同じように内部に様々な値を保管しておくことのできる特別な値です。フィールドやメソッドなどを作成して必要なデータと処理をまとめることができますし、newで値を生成することもできます。構造体の定義も、クラス定義の「class」の代りに「struct」というのをつけるだけです。こうした基本部分はクラスと全く同じです。
ただし、クラスのように継承して新しいクラスを作ることはできません。またクラスのように参照として変数に値を保管せず、構造体の値がそのまま変数に保管されます。いわば「オブジェクト指向的な機能が削られたクラス」といったもの、と考えると良いでしょう。
Color構造体の中には、よく用いられる色の値が色名で登録済みになっています。例えば、Color.Redと指定すれば赤が使われる、というわけです。主な色名はほぼすべてColor内に用意されていますので、当分は「Colorの色名を指定して使うのが基本」と考えておくと良いでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ