blender3d.cz http://blender3d.cz/forum/ |
|
Jak zjistit objekt ktery je uvnitr? nutne http://blender3d.cz/forum/viewtopic.php?f=7&t=1590 |
Stránka 1 z 1 |
Autor: | Ragnos [ pát zář 02, 2005 8:57 pm ] |
Předmět příspěvku: | Jak zjistit objekt ktery je uvnitr? nutne |
Mam dva objekty jeden malej a potrebuju zjistit nejakou fci. v python api jestli je uvnitr objekt nebo venku jak na to? Potrebuju to na skript ktery bude objektem c.1 vyplnovat objekt c.2.... |
Autor: | Ash [ pon zář 05, 2005 9:28 am ] |
Předmět příspěvku: | |
Ak to chceš urobiť všeobecné pre ľubovoľný tvar a komplexnosť objektov, tak je to dosť pálka (hlavne na čas výpočtu). Predpokladom je, že väčší objekt je uzavretý (nemá diery v meshi), nemá non-manifold časti a obidva objekty sú zložené z trojuholníkových fejsov (alebo sa pri výpočte bude robiť teselácia). Potom treba zistiť, či sa ľubovoľný fejs malého objektu nepretína s ľubovoľným fejsom veľkého objektu (to v sebe zahŕňa overovanie pretínania hrán jedného fejsu s druhým fejsom). Ak sa nepretínajú žiadne fejsy, tak sa overí, či jeden vybraný bod malého objektu je vo vnútri veľkého objktu - ak áno, malý objekt je vo vnútri, ak nie, malý objekt je celý mimo veľkého objektu. Možno by sa na overovanie pretínania dala použiť nejaká kolízna knižnica tak, že by sa vytvorili 2 trimesh objekty a poslali by sa do tej knižnice na overenie kolízií. |
Autor: | Ragnos [ úte zář 06, 2005 4:02 pm ] |
Předmět příspěvku: | |
Ash píše: .... tak sa overí, či jeden vybraný bod malého objektu je vo vnútri veľkého objektu ....
. A o to mi jde jak? O protinani facu mi nejde, tim prece nezjistim jestli je venku nebo vevnitr. |
Autor: | jm [ úte zář 06, 2005 10:28 pm ] |
Předmět příspěvku: | |
no muzes mit objekt kterej je z urcite procentuality venku a z urcite vevnitr, no a to je potom na tom zjistit vsechny prolnuti a vyhodnoti ktery z objektu je teda vicemene vevnitr, dalsi vec je objem uvnitr vevnitr...kazdopadne bych vubec nevedel jak na to jm |
Autor: | Ragnos [ stř zář 07, 2005 6:59 am ] |
Předmět příspěvku: | |
jm:me napadlo brat face po facu a ptat se jestli je bod na strane normaly otocene ven nebo vevnitr...v pripade za bude napriklad v noze a tak to veme nejblizsi face od testovaneho facu a centru, tezce se to vysvetluje, nejlip to clovek pochopi kdyz si to pro dva rozmery nakresli. |
Autor: | Ash [ stř zář 07, 2005 8:59 am ] |
Předmět příspěvku: | |
G_Taurus, ideš na to dobre - ak nájdeš fejs, pre ktorý má overovaný bod kolmý priemet na rovinu fejsu vo vnútri toho fejsu, zároveň je overovaný bod zospodu fejsu (na opačnej strane ako normála fejsu) a medzi týmto fejsom a bodom neleží žiadny iný fejs, tak je overovaný bod vo vnútri objektu (samozrejme za podmienky, že objekt je uzavretý a nemá non-manifold časti). Kolmý priemet bodu na fejs získaš riešením sústavy rovníc o 3 neznámych (2 parametre roviny fejsu a parameter vzdialenosti bodu od roviny fejsu). Výsledné parametre roviny ti povedia, či je priemet bodu vo vnútri fejsu, parameter vzdialenosti povie, či je na správnej strane fejsu. Overenie, či nejaký iný fejs neleží medzi daným fejsom a bodom urobíš analogicky podobnou sústavou rovníc - hľadáš priesečník vektora priemetu bodu s rovinou každého fejsu - výsledný parameter vektora ti povie, či je fejs medzi bodom a pôvodným fejsom. Stačí ak nájdeš jeden fejs, pre ktorý platia tieto podmienky, a bod je vo vnútri objektu. Ak podmienky neplatia pre žiadny fejs, bod je mimo objektu. |
Autor: | Ragnos [ stř zář 07, 2005 3:31 pm ] |
Předmět příspěvku: | |
Ash:Diky Ash, tohle jsem potreboval vedet. tedka nemam moc casu, ale vecer o tom popremyslim... |
Autor: | Ash [ sob zář 10, 2005 11:34 pm ] |
Předmět příspěvku: | |
Opravujem svoj predchádzajúci príspevok, pretože postup, ktorý som uviedol, nie je v niektorých prípadoch funkčný. Namiesto kolmého priemetu testovaného bodu do roviny fejsu treba vytvoriť vektor medzi bodom a jedným vrcholom fejsu a tento vektor skalárnym súčinom s normálou fejsu skontrolovať, či je bod na správnej strane fejsu. Ak je, treba prejsť ostatné fejsy a overiť, či sa s daným vektorom nepretínajú rovnako, ako som napísal v predchádzajúcom príspevku. |
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |