.[ ČeskéHry.cz ].
Je bod pod, alebo nad trojuholnikom?

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
niXon



Založen: 27. 10. 2007
Příspěvky: 22

PříspěvekZaslal: 18. listopad 2007, 10:52:49    Předmět: Je bod pod, alebo nad trojuholnikom? Odpovědět s citátem

Dobry den, mam taky problem, potrebujem poradit....
mam trojuholnik, k nemu x,y,z suradnice kazdeho bodu (trojuholnik moze byt rozne nepravidelny, ...), a mam x,y,z suradnice stvrteho bodu, ku ktoremu potebujem zistit, ci sa nachadza pod/nad trojuholnikom (to, ci je v x,z oblasti trojuholnika si viem zistit) potrebujem len zistit, ci je jeho y hodnota nizsia alebo vyssia, ako by bola "interpolovana" hodnota na ploche toho trojuholnika, ..... staci matematicky poradit, naprogramujem si to uz sam, ale neviem ani ako by som mal zacat....

Dakujem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 18. listopad 2007, 11:14:03    Předmět: Odpovědět s citátem

Nevim jestli spravne chapu dotaz, ale:
Z vrcholu trojuhelnika odvodit obecnou rovnici roviny (tvaru ax + by + cz + d = 0), ve ktere trojuhelnik lezi. Dosadit hledany bod (x,y,z) do rovnice. Pokud ax + by + cz + d > epsilon, je bod nad rovinou, < pod rovinou. (abc je vektor kolmy na rovinu, pokud je normovany, muzes takhle i merit vzdalenost od trojuhelnika)
_________________
- play with objects - www.krkal.org -


Naposledy upravil MD dne 18. listopad 2007, 11:18:09, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
niXon



Založen: 27. 10. 2007
Příspěvky: 22

PříspěvekZaslal: 18. listopad 2007, 11:17:55    Předmět: Odpovědět s citátem

aha, takze, ak N je normalovy vektor na rovinu (trojuholnik) a P je bod, tak ak..

Nx*Px+Ny*Py+Nz*Pz=0 tak lezi bod priamo na trojuholniku (rovine) ??? ak to spravne chapem...

EDIT: ale sa mi to nezda, pretoze by tam nehrali rolu suradnice trojuholnika... asi som zle pochopil rovinu.... mohli by ste mi ten "vypocet roviny" vysvetlit pls ? ked mam suradnice trojuholnika
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 18. listopad 2007, 11:24:02    Předmět: Odpovědět s citátem

Ano, od toho je to rovnice roviny, pokud ti to vyjde pro urcity pod P nula (rovnice tedy plati), tak dany pod lezi na rovine (ne nutne na trojuhelniku Wink ). Jinak N je jakykoli vektor, ktery je na rovinu kolmy. Z vrcholu, ktere na rovine lezi (napr z vrcholu trojuhelnika) se da spocitat vektorovym soucinem: (B-A) x (C-A)
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
niXon



Založen: 27. 10. 2007
Příspěvky: 22

PříspěvekZaslal: 18. listopad 2007, 11:27:19    Předmět: Odpovědět s citátem

ale tymto sposobom:

Nx*Px+Ny*Py+Nz*Pz=0

to predsa bude platit pre kazdy trojuholnik ktory ma urcity normalovy vektor, nehladne na to kde je.. a to predsa nemoze byt tak, ved normalovy vektor moze mat trojuholnik (rovina) taky isty, aj ked je o 2jednotky nizsie alebo vyssie, ak ma rovnaky "naklon"...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
igor



Založen: 28. 07. 2007
Příspěvky: 196

PříspěvekZaslal: 18. listopad 2007, 11:28:05    Předmět: Odpovědět s citátem

nespravne

1) vemes bod lezici na trojuhelniku (napr. vrchol) B[x,y,z]
2) vypoctes normalovy vektor N[a,b,c]
3) obecna rovnice je ax + by + cz + d = 0 takze musis vypocitat d
4) testovany bod C[x,y,z] dosadis do
ax + by + cz + d podle znamenka vysledku zjistis, zda je nad/pod trojuhelnikem (pokud chces zjistit, zda lezi na, je vhodne tam dat nejakou toleranci)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 18. listopad 2007, 11:33:24    Předmět: Odpovědět s citátem

Nx*Px + Ny*Py + Nz*Pz + D = 0

to D jsi zapomel - Nx, Ny, Nz je normalovy vektor roviny a to D si dopocitas dosazenim bodu A, B nebo C do rovnice

Nx*Ax + Ny*Ay + Nz*Az + D = 0

tedy

D = -Nx*Ax - Ny*Ay - Nz*Az

to D urcuje "jak vysoko" ta dana rovina mezi temi vsemi se stejnou normalou lezi
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
niXon



Založen: 27. 10. 2007
Příspěvky: 22

PříspěvekZaslal: 18. listopad 2007, 11:34:25    Předmět: Odpovědět s citátem

aahaa Smile dakujem Vam krasne, uz tomu chapem Smile diky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 18. listopad 2007, 11:34:25    Předmět: Odpovědět s citátem

nj, niXone, nezapominej na ten clen d (urcuje posunuti roviny mimo pocatek souradnic) a spocita se, jak rika igor a rezna. Jinak N (normalovy vektor) je treba spocitat ze dvou LNZ vektoru, ktere na rovine lezi ...
Jestlize d udava posun roviny, pak N je jeji natoceni.
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna