Ovde su nabrojane nee osnovne formule i postupci oji se oriste pri rešavanju algoritamsih problema iz oblasti geometrije. apredniji problemi računarse geometrije biće obrađeni u posebnim lecijama. Prese intervala: Dati su intervali [a,b] i [c,d]. Odrediti interval oji je njigov prese (ao postoji). - Uolio nismo sigurni oji je levi a oji desni raj, najpre treba urediti rajeve datih itervala if (a>b) { tmp=a; a=b; b=tmp; } if (c>d) { tmp=c; c=d; d=tmp; } - Ao prese postoji, njegov levi raj je veći od brojeva {a, c}, a desni raj je manji od brojeva {b, d} if (a < c) =c; else =a; if (b < d) =b; else =d; if ( ) return {true,, }; else return false; Prese (poravnatih) pravougaonia: Poravnate pravougaonie ćemo definisati ao pravougaonie od ojih su stranice paralelne oordinatnim osama. Poravnati pravougaoni ćemo rato zvati bos. Bos se može zadati oordinatama temena jedne svoje dijagonale. a primer, ao su date oordinate P, P, Q, Q temena dijagonale PQ, tada su temena pravougaonia (P,P), (P,Q), (Q,Q), (Q,P). Zadata: dati su bosovi ABCD i EFGH oordinatama temena po jedne svoje diajgonale, dale brojevima: b, b, d, d, f, f, h, h. Odrediti bos oji je prese datih bosova (ao postoji). apomena: ao ništa nije rečeno o redosledu označavanja temena bosa, ne možemo se osloniti na nei određeni redosled, nego treba urediti oordinate po jednoj i drugoj osi (zasebno). a dalje se zadata svodi na dvostruu primenu prethodnog zadata (prese intervala). Zadavanje prave U šoli se prava najčešće zadaje jednačinom oblia =a+b. Mana ovog načina zadavanja je što se prava paralelna sa osom ne može zadati ovavom jednačinom. Potreban je obli oji obuhvata sve slučajeve. ea je prava p zadata dvema svojim (različitim) tačama A(a, a) i B(b, b) i nea je M(,) proizvoljna tača u ravni. Potreban i dovoljan uslov oji treba da ispuni tača M da bi pripadala pravoj p predstavlja jednačinu prave. Taj uslov se može zapisati vetorsi:
M = A + t AB ili OM = OA + t AB, gde je O oordinatni početa, ili po oordinatama: = a + t*(b-a), = a + t*(b-a). Ovo je parametarso zadavanje prave. Primetimo da za vrednost parametra t=0 dobijamo taču A, a za vrednost t= dobijamo taču B. Lao se možemo uveriti da ograničavanjem vrednosti parametra t možemo zadati sledeće delove prave: sup vrednosti parametra t deo prave t (, ) cela prava p t=0 tača A t= tača B t [0,] duž AB t [0, ) poluprava sa početom u A, oja sadrži B t (, 0] poluprava sa početom u A, oja ne sadrži B t [, ) poluprava sa početom u B, oja ne sadrži A t (, ] poluprava sa početom u B, oja sadrži A Zadavanje prave i njenih delova u prostoru je pratično isto, osim što tače imaju po tri oordinate. ea su sada tače A i B zadate ao A(a, a, az), B(b, b, bz). Vetorsa jednačina prave je potpuno ista ao u slučaju ravni, do jednačine po oordinatama glase: = a + t*(b-a), = a + t*(b-a), z = az + t*(bz-az). Primer: Date su duži AB i CD oordinatama svojih tačaa u ravni. Odrediti da li ove duži imaju zajedničih tačaa, i ao imaju, odretiti oordinate jedne zajedniče tače. Rešenje: problem se svodi na određivanje brojeva t i t (ao postoje), tavih da važi: a + t *(b-a) = c + t *(d-c) a + t *(b-a) = c + t *(d-c) 0 t 0 t a to je rešavanje sistema linearnih jednačina sa dve nepoznate (t i t ), oje se uči u oviru matematie za osnovnu šolu. Zadavanje ruga Potreba i dovoljan uslov da tača (, ) pripada rugu je da je njeno rastojanje od centra ruga ( 0, 0) jednao R. Drugim rečima, treba da važi: ( 0 ) + ( 0 ) = R Prese prave i ruga
ea je protrebno odrediti taču oaj pripada istovremeno datoj pravoj i datom rugu. ea je prava zadata parametarsi = a + t*(b-a), = a + t*(b-a). A rug jednačinom ( 0 ) + ( 0 ) = R Kombinovanjem dobijamo (a + t (b a) 0 ) + (a + t (b a) 0 ) = R Ovde su sve veličine osim t dati oeficijenti, pa smo ovim dobili vadratnu jednačinu po t. Posle deliomičnog sređivanja, isti uslov glasi: ((b a) + (b a) ) t +((b a) (a 0 ) + (b a) (a 0 )) t +(a 0 ) + (a 0 ) R = 0 Odnosno A t + B t + C = 0, pri čemu smo uveli nove oznae (nove promenljive u programu) A = ((b a) + (b a) ), B=((b a) (a 0 ) + (b a) (a 0 )), C = (a 0 ) + (a 0 ) R Rešavanjem ove vadratne jednačine mogu se dobiti 0, ili rešenja po t, što redom odgovara slučajevima ada prava ima 0, ili zajedniče tače sa rugom. Zadata se može slično rešavati I ada je prava zadata jednačinom, samo se dobija vadratna jednačina po jednoj od oordinata ( ili ) umesto po t. Uslov paralelnosti pravih u ravni i prostoru ea je prava p data tačama A i B a prava p tačama A i B. Da bi prave p i p bile paralelne, potrebno je i dovoljno da vetori nosači ovih pravih (u ovom slučaju A B i A B ) budu olinearni: t A B + t A B = 0, pri čemu bar jedan od oeficijenta t, t nije nula. Kao ni jedan od vetora nosača pravih nije nula vetor, možemo zahtevati da oba oeficijenta budu različita od nule. Time se uslov svodi na A B = t A B ili odale eliminisanjem parametra t = t t b a = t(b a ), b a = t(b a ) dobijamo (b a ) (b a ) = (b a )(b a ). apomenimo da je bolje ovaj uslov pisati pomoću proizvoda (ao što je učinjeno), jer bismo u slučaju deljenja morali da vodimo računa i o slučaju ada je delilac jedna nuli. Za prave u prostoru vetorsi obli je identičan, A B = t A B, a uslova po oordinatama ima za jedan više:
b a = t(b a ), b a = t(b a ), bz az = t(bz az ) Eliminisanjem parametra, sada se dobijaju dve jednačine: (b a ) (b a ) = (b a )(b a ). (b a ) (bz az ) = (b a )(bz az ). Ove jednačine predstavljaju uslove da projecije vetora nosača na ravni O i Oz (istim redom) budu paralelne. Da jedan uslov nije dovoljan lao je potvrditi oristeći ove projecije. Površina prostog mnogougla Mnogougao je prost ao nema samopresea. a slici desno, prvi mnogougao je prost (iaoje neonvesan), a drugi nije prost. Ovde će biti opisano ao se može izračunati površina prostog mnogougla P ao su data nejgova temena u redosledu obilasa poligonalne linije. ea su temena mnogougla redom tače P, P,..., P n. Radi jednobraznog razmatranja svih tačaa, uvešćemo i taču P n+ P i pretpostavićemo da su sve tače u prvom vadrantu. Uočimo sada pravougli trapez P P +Q +Q, gde su P, P + dva uzastopna temena mnogougla, a Q, Q +, njihove projecije na osu. Visina tog trapeza je po apsolutnoj vrednosti jednaa ( - +), a srednja linija ( + +) /. Prema tome, proizvod P ove dve veličine je po apsolutnoj vrednosti jedna površini -tog trapeza: P 4 P 3 P 5 Q 4 Q 3 Q 5 P P Q Q P = ( - +)( + +) / Sabiranjem i oduzimanjem ovavih izraza za sve možemo dobiti površinu mnogougla. Obilasom temena u pozitivniom smeru (suprotno retanju azalje na satu) dobijamo da se oduzimaju površine trapeza oji su van mnogougla (na slici četvrti i peti) od onih oji sadrže mnogougao (prva tri). U slučaju obilasa u negativnom smeru, svi znaci su suprotni. Tao dobijamo da izraz P ( )( ) (zahvaljujući apsolutnoj vrednosti) predstavlja površinu mnogougla, bez obzira na orijentaciju mnogougla (smer u ome su zadata temena). Zna ove sume nam upravo govori da li su temena navedena u pozitivnom ili negativnom smeru. Primetimo još da se izraz za površinu može napisati i ao
P jer se tača P n+ polapa sa tačom P, pa je i ije tešo uveriti se da položaj oordinatnih osa ne utiče na izgled izvedene formule za površinu. a primer, ao bi se sve oordinate smanjile za istu vrednost h, imali bismo: h h h Slično se dobija i pomeranjem ose, tj. promenom svih oordinata. Prema tome, dobijena formula važi za sve proste poligone. Zaoret Date su tri neolinearne tače P, Q i R svojim oordinatama. Odrediti da li, rećući se po izlomljenoj liniji PQR vršimo zaoret nalevo ili nadesno. Rešenje: Da bi se razumelo izvođenje formule u ovom zadatu, potrebno je osnovno znanje trigonometrije (zna sinusne funcije i adiciona formula za sinus razlie uglova). Uolio niste učili trigonometriju, možete presočiti izvođenje i oristiti formulu ao gotov rezultat. Označimo redom sa i uglove oje vetori PQ i QR grade sa pozitivnim smerom ose, ao na slici. Da bi zaoret bio na levo, potrebno je i dovoljno da bude ispunjen uslov sin(-) > 0. Ao sa P, P, Q, Q, R, R označimo redom Q P R
Uvedimo sledeću funciju: oordinate tačaa P, Q, R, a sa a i b dužine vetora PQ i QR, tada je: sin(-) = cos sin - cos sin = (Q - P) (R - Q)/ab - (R - Q) (Q - P) /ab Kao su a i b uve pozitivne veličine, množenje poslednjeg izraza sa ab ne utiče na njegov zna. Zaoret(P, Q, R) = (Q - P) (R - Q) - (R - Q) (Q - P) Prema prethodnom, na osnovu znaa rezultata funcije Zaoret možemo ustanoviti da li je zaoret na levo ili na desno. Konretno, ao je rezultat pozitivan, zaoret je na levo, a ao je negativan na desno. Kolinearnost tačaa Vrednost funcije Zeoret jednaa nuli odgovara olinearnim tačama, pa ovu funciju možemo oristiti i za proveru olinearnosti. Do formule za proveru olinearnosti se može doći i na drugi način, na primer polazeći od jednačine prave PQ. R pripada toj pravoj ao i samo ao je vetor PR olinearan sa PQ, tj. ao postoji t za oje je R = P + t*(q-p), R = P + t*(q-p) Uolio tavo t postoji, ono se može izračunati iz bar jedne od formula t = R P R P ili t = Q P Q P (u slučaju prave paralelne jednoj od oordinatnih osa, ne mogu se oristiti obe formule). Iz rečenog sledi da je uslov za olinearnost tačaa P, Q i R ista jednaost oja je dobijena i pristupom zaoreta (izračunavanjem parametra t iz jedne, a zatim uvrštavanjem u drugu jednasot): (R P) (Q P) = (R P) (Q P) I ovde je bitno da se pri proveri izbegne deljenje, jer bi imenilac mogao biti jedna nuli, a to to bi postupa provere učinilo ompliovanijim, sporijim i podložnijim grešci. Koristeći uslov olinearnosti vetora u prostoru, lao se dobija uslov olinearnosti tačaa u prostoru (sastoji se iz dve jednačine). Salarni proizvod vetora i ugao između vetora Dati su vetori a = OA i b = OB tačama A(A, A ) i B(B, B ). Tača O je oordinatni početa. Ponead je potrebno izračunati onvesan ugao oji zalapaju ovi vetori. Za rešavanje ovog zadata dovoljno je znati neolio formula iz analitiče geometrije: Dužina vetora a : a = a = A + A
Dužina vetora b : b = b = B + B Salarni proizvod vetora a i b : a, b = A B + A B = a b cos(a, b ) gde je cos(a, b ) osinus ugla između vetora a, b. Odavde se lao dobija: cos(a, b ) = a, b a b = A B + A B A + A B + B Za vetore u prostoru, ao su tače A(A, A, A z ) i B(B, B, B z ), uslov je vrlo sličan: cos(a, b ) = a, b a b = A B + A B + A z B z A + A + A z B + B + B z Funcija atan U soro svim programsim jezicima oji su danas u upotrebi, postoji gotova funcija za određivanje ugla oji dati vetor (,) zalapa sa pozitivnim smerom ose. Ta funcija se zove atan i može se definisati pomoću matematiče funcije arus tangens (arctan) na sledeći način: arctan ( ) > 0 arctan ( ) + π 0, < 0 atan(, ) = arctan ( ) π < 0, < 0 + π > 0, = 0 π < 0, = 0 { nije definisana = 0, = 0 Funcija atan ao rezultat daje vrednosti iz intervala (-π, π]. Uslov normalnosti pravih u ravni i prostoru ormalnost u opštijem smislu ne zahteva da se prave seu. Drugim rečima, za mimoilazne prave se razmatra ugao oji bip rave gradile ada bi se paralelno pomerile do presea (taj ugao ne zavisi od načina pomeranja), i ao je taj ugao prav, tave prave taođe možemo smatrati međusobno normalnim. Uolio je potrebno proveriti normalnost oja podrazumeva i prese, uslov postojanja presea može se nezavisno dodati. Ugao između dva vetora je prav, ada je osinus tog ugla jedna 0, što se svodi na:
za vetore u ravni, odnosno za vetore u prostoru. A B + A B = 0 A B + A B + A z B z = 0 Za prave u ravni, oje se mogu zadati u obliu = + n, znajući da je a = A A, iz date formule lao se dobija nešto poznatiji uslov: a b =. Mana ovao datog uslova je da se na prave paralalne oordinatnim osama ne može primeniti, a i teže ga je uopštiti na slučaj pravih u prostoru.