Geometrinės Transformacijos Koordinatėse: Poslinkis, Mastelio Keitimas, Pasukimas ir Atspindys

Geometrinės transformacijos koordinatėse yra pagrindinės operacijos kompiuterinėje grafikoje, mašininiame matyme ir daugelyje kitų inžinerinių bei mokslinių sričių. Šios transformacijos leidžia manipuliuoti objektais, keičiant jų padėtį, dydį, orientaciją ir išvaizdą dvimatėje ar trimatėje erdvėje. Pagrindinės transformacijos apima poslinkį, mastelio keitimą, pasukimą ir atspindį.

Sisteminė diagrama, iliustruojanti įvairias geometrines transformacijas dvimatėje erdvėje

Poslinkis (Translations)

Poslinkis yra paprasčiausia geometrinė transformacija, kuri perkelia objektą iš vienos vietos į kitą nekeičiant jo orientacijos ar dydžio. Tai reiškia, kad kiekvienas objekto taškas perkeliamas tuo pačiu atstumu ir ta pačia kryptimi.

Dvimatėje erdvėje taškas $(x, y)$ po poslinkio $(t_x, t_y)$ transformuojasi į naują tašką $(x', y')$, kur:

  • $x' = x + t_x$
  • $y' = y + t_y$

Pavyzdžiui, jei turime atkarpą, kurios galinės taško koordinatės yra (10, 5) ir (20, 11), ir norime perkelti ją, taa, kurios galinis taa ks koordinatės yra (10, 5), (20, 11).

Mastelio Keitimas (Scaling)

Mastelio keitimas keičia objekto dydį. Jis gali būti vienodas (objektas išlaiko proporcijas) arba nevienodas (objekto proporcijos keičiasi, pvz., ištempiamas viena ašimi).

Dvimatėje erdvėje taškas $(x, y)$ po mastelio keitimo koeficientais $(s_x, s_y)$ transformuojasi į naują tašką $(x', y')$$, kur:

  • $x' = x \cdot s_x$
  • $y' = y \cdot s_y$

Jei $s_x = s_y$, tai yra vienodas mastelio keitimas; jei $s_x \neq s_y$, tai yra nevienodas mastelio keitimas.

Pasukimas (Rotation)

Pasukimas keičia objekto orientaciją aplink tam tikrą tašką (dažniausiai koordinačių pradžią). Pasukimo kampas nurodo, kiek laipsnių ar radianų objektas pasukamas.

Dvimatėje erdvėje taškas $(x, y)$ po pasukimo kampu $\theta$ aplink koordinačių pradžią transformuojasi į naują tašką $(x', y')$, kur:

  • $x' = x \cdot \cos(\theta) - y \cdot \sin(\theta)$
  • $y' = x \cdot \sin(\theta) + y \cdot \cos(\theta)$
Schema, iliustruojanti taško pasukimą apie koordinačių pradžią nurodytu kampu

Atspindys (Reflection)

Atspindys sukuria veidrodinį objekto vaizdą per tam tikrą ašį arba plokštumą. Tai tarsi objekto „apvertimas“.

Dažniausiai atspindys atliekamas per X arba Y ašį:

  • Atspindys per X ašį: taškas $(x, y)$ transformuojasi į $(x, -y)$.
  • Atspindys per Y ašį: taškas $(x, y)$ transformuojasi į $(-x, y)$.

Galimi ir atspindžiai per kitas tieses ar plokštumas, tačiau tai reikalauja sudėtingesnių matricinių operacijų.

„Dienos klausimas“: Ko laukti iš Trumpo vizito į Kiniją?

Brezeneheimo algoritmas

Nors minėtos transformacijos yra taikomos objektams, tam tikrais atvejais, pavyzdžiui, linijų braižymui, naudojami specialūs algoritmai. Tarkime, Brezenheimo algoritmu galima nustatyti, kuriuos taškus reikia pakeisti norint nupiešti liniją. Šis algoritmas dažnai naudoja inkrementinį metodą, kad efektyviai apskaičiuotų kito taško koordinates, remiantis dabartine pozicija.

Vienas iš žingsnių Brezenheimo algoritme, apibrėžiant pikselio pasirinkimą, gali būti išreikštas formule:

$p_{k+1} = p_k + 2Dy$

Ši formulė padeda nuspręsti, kurį pikselį pasirinkti tolesniam linijos braižymui, atsižvelgiant į linijos nuolydį.

tags: #koordinaciu #transformacijos #postumio #mastelio #keitimo #posukio