Ravnina je određena s tri
nekolinearne točke
Dva su osnovna oblika
jednadžbe ravnine: analitički oblik i parametarski oblik jednadžbe ravnine.
Analitički oblik jednadžbe
ravnine je:
(uz h1
= h2 = h3 = 1) vrijedi
(4.1)
Koeficijenti jednadžbe
ravnine, u slučaju kada n točaka
točno ili približno leži u ravnini, određeni su postupkom
, (4.2)
Za i-tu točku s koordinatama (xi, yi, zi) koja
leži u ravnini vrijedi:
,
što daje
.
Jednadžbu ravnine R možemo odrediti na osnovi tri točke,
odnosno na osnovi tri skalarna produkta
,
odnosno u matričnom
obliku:
iz čega slijedi
(4.3)
gdje su A, B, C koeficijenti vektora normale na
ravninu. U slučaju kada su tri promatrane točke kojima želimo odrediti ravninu
kolinearne (leže na istom pravcu) rješenje nije jednoznačno. Ako je ravnina
određena zadanim točkama koplanarna s ravninama xy, xz, yz, bit će potrebno posebno razmatranje
i određivanje vektora normale ravnine (0 0 1), (0 1 0), (1 0 0).
Koeficijente A, B, C vektora normale na ravninu možemo
odrediti i kao vektorski produkt dvaju vektora (V2 - V1) i vektora (V3 - V1):
(4.4)
gdje redoslijed vrhova
određuje smjer vektora normale ravnine (prema «gore» ili «dolje»). Ova formula
odgovara formuli (4.1).
Parametarski oblik
jednadžbe ravnine po koordinatama linearna je funkcija dvaju parametara u i w.
(4.5)
Iz 4.5 slijedi matrični
oblik
(4.6)
odnosno
, (4.7)
gdje je K karakteristična matrica ravnine.
Ako se točkama V1, V2 i V3
pridijeli vrijednost parametara
iz 4.6 i 4.7 slijedi
(4.8)
Skalarni produkt točke i
ravnine (slično kao kod pravca i točke) određuje odnos točke i ravnine, pri
tome po dogovoru vrijedi:
(4.9)
Probodište je zajednička točka V pravca P i ravnine R,
Na osnovi ova dva uvjeta
možemo naći točku u kojoj parametarski zadan pravac probada analitički zadanu
ravninu. Odredit ćemo parametar t za
koji vrijedi da je točka pravca istovremeno i točka ravnine.
Tijelo je zadano geometrijskim i topološkim podacima.
Geometrijski podaci su vrhovi, odnosno njihove koordinate. Topološke podatke
čini povezanost vrhova, odnosno popisi koji određuju površinu, poligone i
bridove, te pripadne vrhove. U ovom primjeru odabrana je organizacija prikazana
na slici 4.1. Ovo je jedan od načina organizacije topoloških i geometrijskih
podataka, no ovisno o daljnjim postupcima koji će biti načinjeni nad objektom,
mogu se koristiti i drugačiji oblici pohranjivanja strukture podataka o
objektu.
Trokuti su najčešće korišteni poligoni u opisu tijela
zato što je ravnina određena s tri točke. Na primjer, kod tijela koje je zadano
četverokutima, sve četiri točke ne leže nužno u ravnini, što može izazvati
probleme.
Važno je strukturu podataka načiniti tako da je poznat redoslijed vrhova za
pojedini poligon. Redoslijed vrhova možemo odabrati tako da bude u smjeru suprotno
kazaljke na satu gledano izvan tijela. Redoslijed vrhova određuje orijentaciju
normala poligona. Za neko tijelo normale svih poligona moraju biti usmjerene na
isti način, na primjer sve u unutrašnjost tijela ili sve izvan tijela.
Slika 4.1. Tijelo i pripadna struktura podataka.
Tijelo se može sastojati i od površina različite boje. U
tom slučaju se poligoni grupiraju u skupine istih svojstava.
Za primjer na slici 4.1. popis vrhova, tako da je redoslijed vrhova
poligona u smjeru suprotno kazaljke na satu gledano izvan tijela, izgledao bi
ovako:
Kocka: Podaci u datoteci za
vrhove i poligone:
P1 V0 V1 V2 v 0.0 0.0 0.0 f 1 3 2
P2 V2 V1
V3 v 0.0 0.0 1.0 f 3 4 2
P3 V2 V3 V4 v 1.0 0.0 0.0 f 3 5 4
P4 V4 V3 V5 v 1.0 0.0 1.0 f 5 6 4
P5 V4 V5 V6 v 1.0
1.0 0.0 f 5 7 6
P6 V6 V5 V7 v 1.0 1.0 1.0 f 7 8 6
P7 V6 V7 V0 v 0.0 1.0 0.0 f 7 1 8
P8 V0 V7 V1 v 0.0 1.0
1.0 f 1 2 8
P9 V0 V2 V4 # komentar f 1 5 3
P10 V0 V4 V7 f 1 7 5
P11 V1 V5 V3 f 2 4 6
P12 V1 V7 V5 f 2 6 8
Vektor normale n ravnine R može biti usmjeren
-
u
unutrašnjost tijela,
-
izvan tijela.
Tri susjedna nekolinearna
vrha Vi-1, Vi, Vi+1 u popisu vrhova poligona određuju koeficijente
jednadžbe ravnine R,
(4.10)
a time i komponente
vektora normale n na ravninu R
. (4.11)
Uz pretpostavke:
- redoslijed vrhova Vi-1, Vi,
Vi+1 je u smjeru suprotno kazaljke na satu
gledano izvan tijela
- srednji vrh je na konveksnom dijelu poligona (za
trokute uvijek ispunjeno)
vektor normale n ravnine R usmjeren je izvan tijela.
U slučaju kada se radi o
konveksnom tijelu, te kada je vektor normale ravnine usmjeren izvan tijela,
točka V je unutar tijela ako vrijedi
(4.12)
odnosno, točka V je izvan
tijela ako vrijedi
(4.13)
Ako je tijelo konkavno
tada se iz točke povlači zraka i određuje probodište zrake i stranice tijela.
Ako je broj probodišta
- paran, točka je izvan tijela,
- neparan, točka je unutar tijela.
Zapisivanje trodimenzijskih objekata obično je propisano
specifikacijama proizvođača programske
opreme. To su, na primjer, zapisi s ekstenzijom .3ds, .max, .dxf, .ply, .obj,
.xgl, .stl, .wrl, .iges … . Ovisno o zapisu, zapisani mogu biti trokuti ili
poligoni s više vrhova, grupe poligona, boje, teksture, normale u poligonima
ili vrhovima, krivulje, površine, način konstrukcije objekata, podaci o sceni,
izvori svjetla, podaci o animaciji i slično. U vježbi će biti korišten zapis
.obj, odnosno dio tog zapisa.
Zadan je jednostavan primjer
u kojem se koristi samo dio zapisa objekta Wavefront (.obj). Zapis sadrži popis
vrhova i njihovih koordinata te popis poligona s pripadnim indeksima vrhova.
1. Iz datoteke učitati
zadano tijelo (za primjer sa slike 4.1)
- u prvom prolazu izbrojiti broj vrhova i poligona (prvo
slovo v, f ili #)
- načiniti alokaciju potrebnog
memorijskog prostora
- učitati geometrijske i topološke
podatke (vrhove i poligone)
- zadati koordinate ispitne točke V.
2. Odrediti Ai,
Bi, Ci, Di koeficijente jednadžbe ravnine,
za svaki poligon tijela. Koristiti formulu 4.1. odnosno:
3. Za ispitnu točku V odrediti da li je unutar ili izvan konveksnog tijela. Koristiti
uvjete 4.12, 4.13.