ソース

Bresenhamの線分描画アルゴリズムのサンプルです。


void Bresenham_line(int x1, int y1, int x2, int y2)
{
	int dx = x2 - x1;//xの距離
	int dy = y2 - y1;//yの距離

	int e = 0;//誤差

	if(dx > dy){
		for (int y = 0,int x = x1; x < x2; x++) {
			e += dy;
			if (e > dx){
				e -= dx;
				y++;
			}
			MyPoint(x,y);//点を打つ関数を自作してくれ
		}
	}else{
		for (int x = 0,int y = y1; y < y2; y++) {
			e += dx;
			if (e > dy){
				e -= dy;
				x++;
			}
			MyPoint(x,y);//自作ね!
		}
	}
		
	return;
}

xの距離、yの距離のどちらが大きいかによって処理は分れます。後は説明の通りなんで 特に難しいことはないでしょう。私はこのプログラムを思いつくまでにメチャメチャ時間が 掛かりましたが・・・(T0T)

HOME