Isoyta
En isoyta är en tredimensionell analog av en isolin . Det är en yta som representerar punkter med ett konstant värde (t.ex. tryck , temperatur , hastighet , densitet ) inom en volym av rymden; med andra ord är det en nivåuppsättning av en kontinuerlig funktion vars domän är 3-mellanrum .
Termen isolin används också ibland för domäner med mer än 3 dimensioner.
Ansökningar
Isoytor visas normalt med hjälp av datorgrafik och används som datavisualiseringsmetoder i beräkningsvätskedynamik (CFD), vilket gör att ingenjörer kan studera egenskaper hos ett vätskeflöde (gas eller vätska) runt föremål, såsom flygplansvingar . En isoyta kan representera en individuell stötvåg i överljudsflygning , eller flera isoytor kan genereras som visar en sekvens av tryckvärden i luften som strömmar runt en vinge. Isoytor tenderar att vara en populär form av visualisering för volymdatauppsättningar eftersom de kan renderas av en enkel polygonal modell, som kan ritas på skärmen mycket snabbt.
Vid medicinsk avbildning kan isoytor användas för att representera regioner med en viss densitet i en tredimensionell datortomografi , vilket möjliggör visualisering av inre organ , ben eller andra strukturer.
Många andra discipliner som är intresserade av tredimensionell data använder ofta iso-ytor för att få information om farmakologi , kemi , geofysik och meteorologi .
Implementeringsalgoritmer
Marcherande kuber
Algoritmen för marschkuber publicerades första gången i SIGGRAPH-processen 1987 av Lorensen och Cline, och den skapar en yta genom att skära kanterna på ett datavolymrutnät med volymkonturen. Där ytan skär kanten skapar algoritmen en vertex. Genom att använda en tabell med olika trianglar beroende på olika mönster av kantskärningar kan algoritmen skapa en yta. Denna algoritm har lösningar för implementering både på CPU och på GPU.
Asymptotisk avgörande
Den asymptotiska beslutsalgoritmen utvecklades som en förlängning av marschkuber för att lösa möjligheten till tvetydighet i den.
Marscherande tetraedrar
Algoritmen för marschtetraedrar utvecklades som en förlängning av marschkuber för att lösa en tvetydighet i den algoritmen och för att skapa utdatayta av högre kvalitet.
Ytnät
Surface Nets-algoritmen placerar en korsande vertex i mitten av en volymvoxel istället för vid kanterna, vilket leder till en jämnare utgångsyta.
Dubbla konturer
Algoritmen för dubbla konturer publicerades först i 2002 års SIGGRAPH-processer av Ju och Losasso, utvecklad som en förlängning av både ytnät och marschkuber. Den behåller en dubbel vertex i voxeln men inte längre i mitten. Dubbel konturering utnyttjar positionen och normalen där ytan korsar kanterna på en voxel för att interpolera positionen för den dubbla vertexen inom voxeln. Detta har fördelen av att hålla vassa eller släta ytor där ytnät ofta ser blockiga eller felaktigt avfasade ut. Dubbel konturering använder ofta ytgenerering som utnyttjar okträd som en optimering för att anpassa antalet trianglar i utdata till ytans komplexitet.
Fördelare med dubbla konturer
Förgreningsrörets dubbla konturering inkluderar en analys av octreeområdet för att upprätthålla kontinuiteten hos fördelarytan
Exempel
Exempel på iso-ytor är ' Metaballs ' eller 'blobby-objekt' som används i 3D-visualisering. Ett mer allmänt sätt att konstruera en isoyta är att använda funktionen representation .
Se även
- Charles D. Hansen; Chris R. Johnson (2004). Visualiseringshandbok . Akademisk press. s. 7–11. ISBN 978-0-12-387582-2 .
externa länkar
- Isoytans polygonisering
- Contourist-paketet för numerisk python genererar triangulering av iso-ytor för godtyckliga 3-dimensionella funktioner som kan visas med HTML5 som illustreras i denna jsfiddle