Jedinična dužina na \(x\)-osi iz prirodnog koordinatnog sustava ima duljinu \(\lfloor s_x\rfloor\) piksela na canvasu.
Jedinična dužina na \(y\)-osi iz prirodnog koordinatnog sustava ima duljinu \(\lfloor -s_y\rfloor\) piksela na canvasu.
Ishodište prirodnog koordinatnog sustava preslika se u točku (piksel) na canvasu koja ima
koordinate \(\big(\lfloor p_x\rfloor,\lfloor p_y\rfloor\big)\).
Točka \((x,y)\) iz prirodnog koordinatnog sustava se preko \((\clubsuit)\) preslika u piksel u canvasu
s koordinatama \(\big(\lfloor x'\rfloor,\lfloor y'\rfloor\big)\).
Točka \((x,y)\) u prirodnom koordinatnom sustavu se preslika
u točku \((x',y')\) u koordinatnom sustavu canvasa preko afinog preslikavanja
\begin{align}x'&=s_x\cdot x+p_x\\ y'&=s_y\cdot y + p_y\end{align}
koje se može zapisati u matričnom obliku
\begin{equation}\begin{bmatrix}x'\\ y'\end{bmatrix}=\begin{bmatrix}s_x & 0\\ 0 & s_y\end{bmatrix}
\begin{bmatrix}x\\ y\end{bmatrix}+\begin{bmatrix}p_x\\ p_y\end{bmatrix}\tag{\(\clubsuit\)}\end{equation}
Točka \((x',y')\) u koordinatnom sustavu canvasa se preslika u točku \((x,y)\) u
prirodnom koordinatnom sustavu preko afinog preslikavanja
\begin{align}x&=\tfrac{1}{s_x}\cdot(x'-p_x)\\[2pt] y&=\tfrac{1}{s_y}\cdot(y'-p_y)\end{align}
koje se može zapisati u matričnom obliku
$$\begin{bmatrix}x\\ y\end{bmatrix}=\begin{bmatrix}\tfrac{1}{s_x} & 0\\ 0 & \tfrac{1}{s_y}\end{bmatrix}
\begin{bmatrix}x'\\ y'\end{bmatrix}-\begin{bmatrix}\tfrac{p_x}{s_x}\\[2pt] \tfrac{p_y}{s_y}\end{bmatrix}$$
Detaljniji matematički izvod formule \((\clubsuit)\) možete pogledati ovdje.
Zadatak za studente. Implementirati GKS klasu koja omogućuje crtanje u prirodnim koordinatama u canvasu.