[ pailhead @ 27.11.2009. 04:28 ] @
Kao prvo, moram da kazem da sam arhitekta, a ne matematicar, i da se bavim kompjuterskom grafikom, a nazalost ne programiranjem.

Problem je sto sam nedavno nabasao na program, u kome moze da se programira bez koriscenja jezika, samo povezivanjem razlicitih komponenti u grafickom okruzenju. Na raspolaganju je i dosta matematike, ali malo po malo pa negde zapnem.


Dakle,

Naprvio sam parametarsku piramidu, odnosno ortogonalnu matricu piramida. Nebitan je njihov broj, bitno je da svaka ima kvadratnu osnovu i da je ona konstante velicine. Visina h se menja, i na toj osi visine, na nekom h1 rastojanju od baze, nalazi se neka tacka. I h i h1 su promenljive, ali su iste za svaku piramidu. Kroz tu tacku, kroz svakuj piramidu, prolazi jedna ravan i sece je. Orijentacija ravni je odredjena vektorom, koji je za svaku piramidu zaseban, i preuzet iz jedne liste. Svaki taj vektor, moze imati komponente x i y od -1 do 1, ali komponentu z od 0 1 plus opet neka promenljiva vrednost x jer mi 0 ne odgovara, potrebno mi je da ta ravan ne gradi nikako ugao od 90 stepeni sa bazom. Dakle sa tim x koje dodam, odredjuem maksimalni ugao koju ravan moze da gradi sa bazom piramide.

E sad, problem koji mi se javlja je, sto taj program, kada zadam veci broj piramida uzasno sporo radi, i moram po nekoliko minuta da cekam da mi generise resenje. Ono sto mi se moze desiti je da zaam vrednost x, tako da se u hiljadu piramida javi par gde ravan sece i bazu a ne samo strane kako mi treba.

Meni je potrebno da nekako unapred predvidim, kolika ce biti najveca visina tog preseka u Z pravcu, odnosno tacnije rastojanje u Z pravcu od tacke kroz koju prolazi ravan, do najnize tacke preseka sa piramidom. Kada bi piramida bila beskonacna, mogao bih u tom rpogramu lako da generisem listu svih tacaka svih preseka, i da nadjem onu koja ima najnizu Z kordinatu, i to jednostavno oduzmem od Z kordinate one polazne tacke (visina h1). Medjutim, ne mogu da uacujem i to, jer bi to neverovatno opteretilo tu skriptu i pitanje je da li bi uopste program to izdrzao. Ako pokusam to da uradim na ovaj nacin na koji sad radim, opet necu znati, jer ce najniza tacka biti presek sa bazom, ako preteram sa onim uglom i nista mi nie znaci jer necu znati za koliko treba da povecam visinu ili ugao da ravan ne bi sekla bazu.

Zanima me da li je moguce nekako uraditi neku funkciju sa vektorima iz te tacke, ili uglovima i na osnovu toga predviteti tu velicinu? Znam da bi najnizu tacku dala ravan cija je nagibnica pod 45 stepeni gledano u osnovi (lezi u zracnoj ravni u odnosu na bazu koja sadrzi dijagonalu) i koja bi imala najveci ugao u odnosu na bazu. Medjutim, ne znam sta se desava kada recimo imam neku ravan koja gradi veliki ugao (najveci ugao) sa bazom, ali je zato nagibnica (u osnovi gledano) blize uglu od 90 stepeni sa ivicom piramide, i kad imam neku drugu ravan, koja je pod manjim nagibom u odnosu na bazu, ali je ugao u osnovi mnogo blizi dijagonali. Trebalo bi nekako ta dva ugla, ili te vektore da objedinim, i tu da nadjem neku najvecu vrednost, koju bih kasnije iskoristio da dobijem tu visinu u odnosu na h piramide, i h1 te tacke.



[ Nedeljko @ 27.11.2009. 09:15 ] @
Ako taj program radi tako što odredi veliki skup tačaka preseka, pa određuje minimum/maksimum visine, onda nije ni čudo što sporo radi.

Minimum/maksimum se nalazi na jednoj od izvodnica, pa nemoj zadavati piramidu kao telo, već kao četiri duži (izvodnice). Onda u preseku dobijaš samo četiri tačke, pa će program raditi brže.
[ pailhead @ 29.11.2009. 19:39 ] @
A da li je moguce izvesti tu pretpostavku preko vektora i uglova?


Nisam se snasao da izvedem bilo kakvu funkciju, ali sam pokusao da se dovijem na drugi nacin.

Napravio sam niz tacaka, kojima je jedna kordinada bila promenljiva, a druge dve fiksne. Zatim sam uzeo da pogledam kako se ponasaju te tacke ako za tu promenljivu kordinatu dam tu presecnu tacku piramide ako se ravan rotira u jednom pravcu, i ako se rotira u drugom. Naravno, oba krecu od iste visine na kojoj se nalazi tacka u kojoj je piramida i idu ka beskonacnosti, ali da li bih mogao tako nekako da postavim jednacine i da dobijem jedan vektor, ili dva ugla (ugao u osnovi i ugao u preseku) preko kojih bih dalje mogao da izvedem trigonometriju i dobijem tu vrednost?
[ Cabo @ 30.11.2009. 13:34 ] @
U principu, polarne (ili sferne) koordinate su potpuno ekvivalentne „običnim“. U „običnim“ koordinatama imaš i koordinatu, a u polarnim i . Dve tamo, dve ovamo.
[ pailhead @ 30.11.2009. 17:45 ] @
Jesi siguran da si napisao ovu poruku u onoj temi kojoj si hteo? :)
[ Nedeljko @ 30.11.2009. 18:15 ] @
Neka su date različite tačke , i ravan .

Za proizvoljnu tačku prave važi , , za neko . No, presečna tačka pripada ravni , pa je , odakle se nalazi da je .
[ Cabo @ 30.11.2009. 20:52 ] @
Citat:
pailhead: Jesi siguran da si napisao ovu poruku u onoj temi kojoj si hteo? :)


Citat:
pailhead: da li bih mogao tako nekako da postavim jednacine i da dobijem jedan vektor, ili dva ugla (ugao u osnovi i ugao u preseku) preko kojih bih dalje mogao da izvedem trigonometriju i dobijem tu vrednost?


Hmm... da?

Moja poenta je: zadatak ne bi bio ništa lakši prelaskom na sferne koordinate (uglovi i poteg).
[ pailhead @ 01.12.2009. 19:57 ] @
Kad bih ja jos znao sta to znaci.
[ Cabo @ 02.12.2009. 09:33 ] @
http://www.lmgtfy.com/?q=spherical+coordinates
[ pailhead @ 02.12.2009. 21:44 ] @
Pises ove poruke samo da bi broj ispod imena rastao?



Pailhead: "Imam problem koji mi deluje da je u domenu matematike. Ne znam nista o matematici i ovde trazim a) da li je neko uopste voljan da mi pomogne b) da li moze resenje ili princip da mi sazvace na nacin na koji bih ja razumeo"

Cabo: "Pa u principu tvoj matematicki problem moze da se resi matematikom. Nadam se da sam ti resio problem"



U jedinoj drugoj temi koju sam postavio u matemtici isto si napisao nesto samo da bi napisao, a kad sam sam nasao resenje nije ti palo na pamet da se javis i da kazes da li si uopste razumeo pitanje.

[ Cabo @ 03.12.2009. 16:17 ] @
Citat:
pailhead: Pises ove poruke samo da bi broj ispod imena rastao?


Da, tako je. Jao, šta da radim, provalio si me načisto. Uh, šta ću sad kad je moj plan za svetsku dominaciju putem broja poruka otkriven?