Výpočet normály – Matematika – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpočet normály – Matematika – Fórum – Programujte.comVýpočet normály – Matematika – Fórum – Programujte.com

 

lukas.balaz0
Super člen
21. 8. 2013   #1
-
0
-

Robím s OpenGL a mám dve otázky:

1 : Myslím, že normála je polpriamka vychádzajúca zo stredu polygonu a je kolmá na polygon. Ja sa chcem spýtať čo sa chápe ako "stred polygonu" ?? Prvé čo ma napadlo je, že x-súradnica stredu je priemer x-súradníc bodov, atď. ale nie som si istý.

2 : Ako by sa to dalo vypočítať ?? Teda opengl odo mňa chce vedieť jeden bod, ktorý je v tej polpriamke, z toho si ju vie zostrojiť. Potrebujem to vypočítať v programe nie na papieri.

Diki

Nahlásit jako SPAM
IP: 213.215.106.–
lukas.balaz0
Super člen
21. 8. 2013   #2
-
0
-

Zabudol som dopísať, aby bolo jasné, je to v priestore, teda x,y,z (ale to asi je jasné, lebo v idej dimenzii nie sú polygony)

Nahlásit jako SPAM
IP: 213.215.106.–
TheOndrap+2
Super člen
21. 8. 2013   #3
-
0
-

#2 lukas.balaz
Sem si dycky myslel že polygon je obecně mnohoúhelník, v 3-rozměrném prostoru podle toho co píšeš ty si to nějak nedovedu představit .. seš si jistej, že nejde pouze o plochu?

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
lukas.balaz0
Super člen
21. 8. 2013   #4
-
0
-

šak áno ide o plochu, ja som si myslel že polygon (mnohouholník) je vždy plocha, ale môže byť otočená, teda súradnica z nie je vždy 0 ako pri 2D

Nahlásit jako SPAM
IP: 213.215.106.–
sleepy0
Stálý člen
22. 8. 2013   #5
-
0
-

je viac sposobou ako to vypocitat. Ale kedze sa nezaoberas normalou na  rozmerny podpriestor, tak ti staci standardny vektorovy sucin. Vyberes si dva nezavysle vektory daneho mnohouholnika a vektorovo ich vynasobis z toho dostanes treti vektor ktory je nutne kolmy na dane dva vektory. Ked uz mas normalovy vektor a stred, parametricku rovnicu priamky urobis jednoducho: x=S + tN, kde S je vektor polohy stredu, N je normalovy vektor a t je parameter.

Druha moznost ako zyskat normalovy vektor je ze si uvedomis, ze potrebujes ziskat kolmy vektor na dva nezavysle (u1,u2) vektory ktorymi je urceny podpriestor (ako v prvom pripade) a generujes dany vektor v nejakej baze (v tvojom pripade kanonickej w1=(1;0;0), w2=(0;1;0), w3=(0;0;1)) a cize: N = aw1 + bw2 + w3, kde a, b su koeficienty ktore dopocitas. Teraz pouzijes skalarny sucin (bilinearna, kladne definitna operacia), kolmy je vektor prave vtedy ked skalarny sucin dava 0:

1.) <N,u1>=0 a <N,u2>=0

2.) Vyuzijes bilinearitu:

a<w1,u1> + b<w2,u1>+<w3,u1>=0
a<w1,u2> + b<w2,u2>+<w3,u2>=0
mas dve rovnice o dvoch neznamych, ktore dosadis do rovnice pre N a mas normalovy vektor. Btw. <,> znacim skalarny sucin.

Nahlásit jako SPAM
IP: 158.195.204.–
lukas.balaz0
Super člen
22. 8. 2013   #6
-
0
-

Podla toho čo si napísal a čo som videl na internete, ja som asi nepochopil, čo vlasne opengl chce aby vedelo určiť normálu, som myslel, že chce bod ktorý keď spojím so stredom polygonu (pravdepodobne priemerov jeho bodov), tak dostanem čiaru kolmú na polygon.

Teda ak mám päťuholník, ktorého z-súradnice bodov sú nula a priemer jeho bodov je napr. 4,4,(0) tak bod, ktorý môžem dať opengl ako normála môže byť 4,4,1 (alebo 4,4-1) ale potom čo vlastne dostanem keď vypočítam normálu napr. Newellsovou metodou, pretože ak z bodov= 0, tak x a y normály je tiež nula, ako NAOZAJ nchápem

ďakujem za vysvetlenie

Nahlásit jako SPAM
IP: 213.215.106.–
sleepy0
Stálý člen
22. 8. 2013   #7
-
0
-

O tejto metode som pred tym nepocul, cize sa neviem vyjadrit, ale ak najdes nejake odvodenie tejto metody rad by som si ho precital. Mozno, podla tvojho popisu, navracia len normalovy vektor, to neviem. Ale ak potrebujes len bod ktory, ked spojis so stredom mnohouholniku tak priamka kotra nimi prechadza bude kolma na mnohouholnik. Tak rovnica vyssie ti dava celu taku mnozinu bodov kolmich na dany mnohouholnik, menovite: x = S + tN, cize ak potrebujes jeden taky bod tak ti staci len t=1: x=S+N. S zrejme vypocitas ako aritmeticky priemer, neveim ako je definovany stred mnohouholniku v opengl, ale ked si tak v hlave prebieham ako sa zistovali stredy tak aritmeticky priemer by mal fungovat. Ak nevies ako presne funguje Newellsowa metoda tak pouzi vektorovy sucin, podla mna to nieje o vela zlozitejsie. Zober si ze mas body v rovine tvoraice mnohouholnik (u0,u1,u2,....,un). Su to v podstate vektory od bodu (0,0,0) a tym ze su vsetky v jednej rovine tak vektorovy sucin lubovolnych dvoch ti da nenormovany ortogonalny vektor (to vyplyva z definicie vekt. sucinu): N = ui x uj.

Nahlásit jako SPAM
IP: 158.195.204.–
lukas.balaz0
Super člen
22. 8. 2013   #8
-
0
-

Akože Newellsova metóda alebo vektorový súčin mi dajú súradnice nejakého bodu x.normal,y.normal a z.normal a ja mám sčítať x.stred+x.normal=x bodu, ktorý mám povedať opengl?? (neviem presne čo znamená sčítavanie vektorov tu k x.stredu pripočítavajú    (x/sqrt(x.normal^2+y.normal^2+z.normal^2))   )

Nahlásit jako SPAM
IP: 213.215.106.–
lukas.balaz0
Super člen
22. 8. 2013   #9
-
0
-

teda vlastne to k stredu nepričítavajú, len predpokladajú, že stred súradnicovej sústavy na ktorej je nakreslený polygon je stred polygonu, (teda stred polygonu=0,0,0)

Nahlásit jako SPAM
IP: 213.215.106.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Vypocet pi — založil Nemo_001

Výpočet na GK — založil Midnight

Vypocet v C# — založil vyhno

Výpočet odporu — založil -.-

Výpočet příkladu — založil Nicolas

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý