"Vnekterych souborech typu DXF jsou dokonce ulozeny i informace o objemovych telesech seskupenych pomoci CSG (Constructive Solid Geometry), tyto informace vsak neni snadne (a pravdepodobne ani legalni) bez komercniho konverzniho programu ziskat, protoze jsou zakodovane."
U CSG nejde jen o to seskupeni, ale i napr. o to, ze na modelu z trojuhelnikovych plosek tezko spocitate, kolik ta vec vazi nebo kde ma teziste.
Chyby: Spatna odpoved na otazku kontroly proti spamu - zapiste letosni rok ve ctyrciselnem formatu Ochrana proti spamovacim robotum. Odpovezte prosim na nasledujici otazku: Jaky je letos rok? 2007
Diky za informaci, opravdu jsem nevedel, ze se s CSG v DXF da pracovat i "zadarmo". Vyhody CSG jsou myslim jasne, jeste lepsi je spojeni CSG a parametrickeho modelovani. Ty trojuhelnikove plochy (telesa rozlozena na 3DFACE) jsou chapany jako minimalni podmnozina, se kterou by mel dokazat pracovat kazdy CAD/CAM/renderer, v podstate obdoba souboru ve "formatu" RAW ci TRI.
No clock ma na tech strankach opravdu soubory DXF, neni to obecne CSG (jake ma treba POV-Ray, kde lze mnozinovymi operacemi slucovat prakticky jakakoli telesa).
Jen doplnim: z trojuhelnikovych (n-uhelnikovych) plosek prave velmi _lehko_ spocitame ruzne objemove integraly, zejmena napr. kolik ta vec vazi a kde ma teziste. Na ten objem je to zhruba 4radkovy program v C.
Jednou moznosti je scitat objemy elementarnich ctyrstenu _se znamenkem_ (aby to fungovalo i pro nekonvexni telesa), tak to dela napr. program admesh. To je ale dosti trapne, nebot je potreba determinant 4x4 a tudiz i deleni a to je fuj. Mnohem jednodussi je nechat teleso protekat fiktivnim vektorovym polem, napr. F=(x,0,0) a pouzit Gaussovu vetu. To vede na numericky stabilni alg., kde se zhruba receno udela jakysi aritmeticky prumer souradnic a vynasobi x. Pozor, mnoho lidi na teto uzasne ceste pokracovalo bludnou cestou dale pres vetu Greenovu a to uz byla chyba, byt naprosta vetsina vedeckych clanku cituje pramen s touto metodou.
Jinak samozrejme zbyvaji numericke metody krajeni telesa na platky, ty jsem zkousel, ale je to pomerne slozite.
Determinant a diskriminant, to se mi vzdycky pletlo. Gaussova veta? Znam akorat Gaussovu krivku a Gaussovu eliminaci. Dejte pokoj s matematickou analyzou, tu jsem vzdycky nesnasel, jsem rad, ze ty zkousky z toho uz nikdy nemusim delat (teda za predpokladu, ze neexistuje reinkarnace ;-) ), jeji obsah se uz v mozkove L2 cache davno premazal necim jinym ;-)
Ale tusim kam asi miris - je to asi takova 3D obdoba planimetru, ne?
Princip vypoctu se snaze predstavuje 1. ve 2D 2. pro konvexni teleso. Zvolime si libovolny bod, pro zacatek radeji uvnitr nebo na okraji telesa, a ke kazde z usecek (~sten) spustime trojuhelnik (~ctyrsten). Secteme jejich obsahy/objemy a mame vyhrano. Pripadne secteme integraly prislusne funkce pres tento elementarni trojuhelnik/ctyrsten.
Pro nekonvexni teleso pak pouzijeme zcela totez, ovsem pouzijeme objemy se znamenkem (a orientovane usecky/plosky) -- pak dojde k tomu, ze vicekrat zapocitane oblasti se navzajem poscitaji a poodecitaji tak, ze oblasti vne telesa se nakonec odectou a oblasti uvnitr nakonec zustanou. Je to male kouzlo matematiky a krasne to funguje.
S Gaussovou vetou je to jeste hezci, je to v podstate ekvivalent krajeni salamu urcitym smerem (timto smerem je ono vektorove pole, je mozno pouzit i slozitejsi nez prime pole, pak budou platky ponekud dadaisticke; a hlavne je to zbytecne), az na to, ze platky krajime nekonecne jemne. Vyhodou je, ze se nikde ve vypoctu nic nedeli a je to absolutne numericky stabilni. Pekne je, ze presnost nezavisi ani na smeru krajeni.
S ploskami mohou nastat dva ci tri problematicke pripady:
1) nektere trojuhelniky jsou otocene, takze jejich normala smeruje opacnym smerem, nez treba zbytek plaste
2) teleso je spatne prevedeno na trojuhelniky - vznikaji steny s nulovou tloustkou apod. To napriklad muze nastat pri aplikaci marching cubes ci marching tetrahedra v pripade, ze je zvolen prilis velky krok deleni.
3) souvisi s 2) - pri prevodu dojde k takovemu zborceni telesa, ze se napriklad protinaji jednotlive steny atd.
1) a 2) jsou zavineny dementnim softem, tudiz s veci samotnou nemaji co delat. Pokud jiz je nekdo nucen se s nimi potykat, pak muze s vetsim ci mensim uspechem pouzit opravarsky soft (napr. zmineny admesh).
3) je jediny bod, tykajici se trochu numeriky -- ovsem zajimavosti onech vypoctu je, ze probehnou spravne (tj. s chybou odpovidajici chybam ve vstupu, ne radove vetsi) i pro takova ponekud zkreslena telesa.