与えられxlen
た delta-xylen
は delta-ylen
は線の長さです なぜこのコードは:
//Bresenham implementation
float x = x0, y = y0;
if (slope < 1) {
while (x < xlen) {
paintpt(x, y));
x += step;
if (left.y > right.y)
y += slope * step;
else
y -= slope * step;
}
}
このコードより効率的ですか?
//Naive vector addition
int x = x0, y = y0;
float xinc = xlen / len, yinc = ylen / len;
for (float i = 0; i < len; i++) {
paintpt(x, y);
x += i * xinc;
y += i * yinc;
}
(つまり、初期化は別として、明らかに。線の長さと方向だけが与えられており、勾配などを元に戻す必要があると仮定します。)