Assume camera has unit size, then:
v = \frac{y}{z} (it just the slope, or height difference divided by distance)
u = \frac{x}{z} (width difference divided by distance)
Draw an image: assume camera at C = (a, b, c):
Thickness Rule: turn on a pixel if the line (with a specified width) occupies some percentage of a pixel
Naive Rasterization: to cover n pixel, if we check the condition for every pixel we probably need n^2 times.
Incremental Line Rasterization: given endpoints (u_1, v_1), (u_2, v_2)
we know the slope s = \frac{v_2 - v_1}{u_2 - u_1}
assume u_1 < u_2 \land v_1 < v_2 \land 0 < s < 1, we can write the following code
''' v = v1; for (u = u1; u <= u2; u++) { v += s; draw(u, round(v)) } '''
Table of Content