Če želimo narisati črto, mora računalnik nekako ugotoviti, katere piksle mora pobarvati, da bo črta videti ravna. Poskusiš lahko tako, da pobarvaš kvadratke v spodnji mreži (ti kvadratki so mnogo večji od pikslov na tiskalniku ali zaslonu). Piksle v mreži označimo z dvema vrednostma, $(x, y)$, kjer je $x$ razdalja od levega roba, $y$ pa razdalja od spodnjega roba. Spodnji levi piksel je $(0, 0)$, zgornji desni pa $(19, 19)$.
Poskusi narisati ravne črte tako, da s klikom miške pobarvaš piksle v spodnji mreži:
19 | ||||||||||||||||||||
18 | ||||||||||||||||||||
17 | ||||||||||||||||||||
16 | ||||||||||||||||||||
15 | ||||||||||||||||||||
14 | ||||||||||||||||||||
13 | ||||||||||||||||||||
12 | ||||||||||||||||||||
11 | ||||||||||||||||||||
10 | ||||||||||||||||||||
9 | ||||||||||||||||||||
8 | ||||||||||||||||||||
7 | ||||||||||||||||||||
6 | ||||||||||||||||||||
5 | ||||||||||||||||||||
4 | ||||||||||||||||||||
3 | ||||||||||||||||||||
2 | ||||||||||||||||||||
1 | ||||||||||||||||||||
0 | ||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Risanje vodoravnih, navpičnih ali 45-stopinjskih črt je enostavno; črte pod različnimi koti so tiste, za katere potrebujemo izračune.
Ali lahko z barvanjem pikslov v spodnji mreži, brez uporabe ravnila, narišeš ravno črto od točke $A$ do točke $B$?
Matematična formula za premico je $y = kx + n$. Tako lahko na zaslonu za vsako vrednost $x$ dobimo oziroma izračunamo vrednost $y$ in določimo dve količini: naklon črte $k$ ter začetno vrednost $n$, pri kateri črta seka os $y$. Povedano drugače, če smo na zaslonu s črto oddaljeni $x$ pikslov od levega roba, moramo pobarvati piksel s koordinatama $(x, kx + n)$.
Poskusi določiti vrednosti $k$ in $n$ za črto (daljico) od točke $A$ do točke $B$ ali pa ju izračunaj s pomočjo naslednjih formul: $$k = \frac{y_2 - y_1}{x_2 - x_1}$$ $$n = \frac{y_1 x_2 - y_2 x_1}{x_2 - x_1}$$
19 | ||||||||||||||||||||
18 | ||||||||||||||||||||
17 | ||||||||||||||||||||
16 | ||||||||||||||||||||
15 | ||||||||||||||||||||
14 | ||||||||||||||||||||
13 | ||||||||||||||||||||
12 | ||||||||||||||||||||
11 | ||||||||||||||||||||
10 | ||||||||||||||||||||
9 | B | |||||||||||||||||||
8 | ||||||||||||||||||||
7 | ||||||||||||||||||||
6 | ||||||||||||||||||||
5 | ||||||||||||||||||||
4 | A | |||||||||||||||||||
3 | ||||||||||||||||||||
2 | ||||||||||||||||||||
1 | ||||||||||||||||||||
0 | ||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |