[H8-ML(2430)] Re: ラインを引くときの座標の計算
From: Kosaka Toshifumi <kosaka@xxxxxxxxxxxxxx>
Date: 2002年11月24日(日)22時42分22秒
こんにちは,小坂です。

CGの授業で紹介しているものです。2点(x1,y1),(x2,y2)を与えて,その間をdotで埋める関数です。参考になりますでしょうか。

整数演算だけでできる関数もありますが,これはCGの教科書に載っています。

void drawLine(int x1, int y1, int x2, int y2)
{
     int i, len, width = x2 - x1, height = y2 - y1;
     float width_diff, height_diff;

     if(abs(width) > abs(height)) len = abs(width);
     else len = abs(height);

     width_diff = (float)width / (float)len;
     height_diff = (float)height / (float)len;

     for(i = 0; i <= len; i++) {
         drawDot((int)(x1 + i * width_diff+0.5), 
         (int)(y1 + i * height_diff+0.5));
     }
}


****************************************************
〒193 0997 八王子市椚田町1220-2 東京工業高等専門学校
情報工学科 小坂敏文 phone0426-68-5199 Fax68-5098

スレッド概略
[2428(R)](起点)
 └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]