「Windows API/図形の描画」の版間の差分

削除された内容 追加された内容
編集の要約なし
132 行
=== 任意の図形の塗りつぶし ===
ExtFloodFill 命令で、たとえるならペイントソフトのバケツ塗りのような、線などで囲まれた領域の塗りつぶしをできる。詳しくは外部サイトを参照せよ。
 
== その他の描画 ==
=== 線を引く ===
べつに塗りつぶしをせずに、単に線を描くだけの機能も存在している。
 
直線を描くだけなら、 MoveToEx() 命令と LineTo() 命令で描ける。
 
なお、 MoveToEx() で起点を指定しており、引数で起点を指定する。LineTo() 命令では終点を指定しており、引数で終点を指定すり。
 
 
そのほか、円や楕円を塗りつぶしで描くなら Ellipse() 命令で書ける。
 
また、この円・楕円の引数では、その円を内接円とする長方形を指定する方式で、その長方形の左上の座標と右下の座標を指定する。
 
このため、ナナメに傾いた楕円は書けない。(後述する SetPixel()など別の命令に頼ることになるだろう。)
 
 
そのほか、円弧および楕円弧を塗りつぶさずに弧だけ描くなら Arc() 命令で書ける。
 
そのほか、円弧および楕円を塗りつぶして描くなら Pie() 命令で書ける。
 
これら Arc() や Pie() もまた、内接円を囲む長方形を引数として指定する方式で、その長方形の左上の座標と右下の座標を指定する。
 
 
=== 点を打つ ===
また、点を打つだけの命令もあり、それは SetPixel() 命令である。
 
原理的には、パソコン画面に表示されるどんな画像もピクセル単位の点の集まりにすぎないので、原理的には SetPixel だけで、どんな画像も書ける。
 
 
だが、もちろん実用では、上述に紹介したように、線を描くなら線を引くための専用の命令があるし、塗りつぶしをしたいなら専用の命令があるので、そういう専用の命令を使うことで、プログラマーの作業を簡略化するのが常識的である。
 
ちなみに、1文字ちがいの GetPixel() 命令は、これは指定した座標の色を取得する命令である。
 
 
さて、Win32APIに無さそうな機能として(※ あったら本文を訂正してください)、数学の関数の、二次関数や三次関数のグラフ、あるいは三角関数や指数関数などのグラフなどの曲線は、特に用意はされてないようなので、SetPixel()などで描くことになるだろう。
 
なお、単に数値を計算するだけなら、標準C言語の math.h などで数学の関数が用意されているので、それをインクルードして関数を使用してパソコンに計算してもらえばいい。
 
 
== 無い機能 ==