ダウンロード バイナリファイル (242.5 KB)
ダウンロード ソースファイル (81.4 KB)
本稿では、C++言語を実装に利用した、線分描画の基礎から高品質な線分描画までを解説します。
はじめに
プログラムで線分を描くに当たって、基礎的なことを解説します。
対象読者
コンピューターグラフィックス、画像処理に興味がある人。
サンプル画像
サンプルプログラムで作成した円の画像です。
サンプルプログラム
記事上部のリンクからバイナリファイルをダウンロードして解凍し、「LineDraw.exe」を実行してください。
画面について
プログラムを実行すると、黒色の背景の上に同心円が表示されます。左側には、表示パラメーターや操作方法、処理時間などが表示されます。
操作方法について
| キー | 項目名 | 値範囲 |
| L | 描画アルゴリズムの選択 | Bresenham/DDA/Wu/Nelson |
| P | 描画パターンの選択 | p1/p2/p3/radial/circle |
| 左右キー | X位置の変更 | |
| 上下キー | Y位置の変更 | |
| I | radialパターンの場合は内側の円の大きさ、circleパターンの場合は同心円の間隔の変更 | 0.1~10.0 |
| A | radialパターンとcircleパターンの場合に、線を描く角度の細かさを変更 | 0.01~360.0 |
| T | WuとNelsonの描画アルゴリズムの場合に線の濃さを変更 | 0.0~1.0 |
| F | Nelson描画アルゴリズムのパラメータ | 0.0~ |
| G | gamma補正のパラメータ | 0.0~ |
| Shift | [Shift]と同時押しでパラメータ増加、[Shift]と同時押しでない場合パラメータ減少 | |
| Ctrl | [Ctrl]と同時押しでパラメータの変化の割合を10倍 | |
| R | パラメータの初期化 |
ソースコード
サンプルプログラムはMicrosoftのVisual Studio 2005 StandardのC++で作成をしています。記事上部のリンクからソースファイルをダウンロードして解凍した後、「LineDraw.sln」というソリューションファイルを開いてください。ウィンドウ表示のライブラリにはSDLを使っています。文字表示にはSDL_kanjiを使っています。線の描画には自作のライブラリを利用しています(「common\gl」フォルダに入っています)。
ソースコード中のテンプレート指定を変更することによって、色の精度や種別(モノクロorカラー)などを変更することができます。
- 修正履歴
-
- 2006/03/26 22:11 最適化しました。 画面描画にSDLを使うようにしました。
- 2006/03/21 20:56 2006/3/21 ・BresenahamとDDAとWuの場合のクリッピング処理のパラメータが誤っていたためクラッシュするバグがあったのを修正しました。 ・BresenahamとDDAの場合はγ補正処理を行わないようにしました。
この記事は参考になりましたか?
- この記事の著者
-
べるぽん(ベルポン)
職業:プログラマ日記:http://d.hatena.ne.jp/berupon/物置:http://www.geocities.jp/beruponu/index.html
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


