Wizualizacja 3D obiektów i systemów biomedycznych

Podobne dokumenty
Wizualizacja 3D obiektów i systemów biomedycznych

Zadania optymalizacyjne w szkole ponadgimnazjalnej. Materiały do przedmiotu Metodyka Nauczania Matematyki 2 (G-PG). Prowadzący dr Andrzej Rychlewicz

Graniastosłupy mają dwie podstawy, a ich ściany boczne mają kształt prostokątów.

XII. GEOMETRIA PRZESTRZENNA GRANIASTOSŁUPY

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

GEOMETRIA ELEMENTARNA

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

Grafika komputerowa Wykład 8 Modelowanie obiektów graficznych cz. II

FRAKTALE I SAMOPODOBIEŃSTWO

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Osiągnięcia ponadprzedmiotowe

1 Funkcje dwóch zmiennych podstawowe pojęcia

Krzywa uniwersalna Sierpińskiego

Modele (graficznej reprezentacji) danych przestrzennych postać danych przestrzennych

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

Osiągnięcia ponadprzedmiotowe

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI W KLASIE V

KONKURS ZOSTAŃ PITAGORASEM MUM. Podstawowe własności figur geometrycznych na płaszczyźnie

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

Pojęcia, wymagania i przykładowe zadania na egzamin poprawkowy dla klas II w roku szkolnym 2016/2017 w Zespole Szkół Ekonomicznych w Zielonej Górze

NaCoBeZU z matematyki dla klasy 7

Matematyka II. Bezpieczeństwo jądrowe i ochrona radiologiczna Semestr letni 2018/2019 wykład 13 (27 maja)

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

1. Prymitywy graficzne

Wymagania edukacyjne z matematyki dla klasy VII

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

W. Guzicki Zadanie 28 z Informatora Maturalnego poziom rozszerzony 1

Dział I FUNKCJE I ICH WŁASNOŚCI

INTERPOLACJA I APROKSYMACJA FUNKCJI

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik

Wymagania edukacyjne niezbędne do otrzymania poszczególnych śródrocznych i rocznych ocen klasyfikacyjnych z matematyki dla klasy VIII

I. Liczby i działania

Elementy geometrii analitycznej w R 3

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 3

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE VIII

Wykład 4 Przebieg zmienności funkcji. Badanie dziedziny oraz wyznaczanie granic funkcji poznaliśmy na poprzednich wykładach.

10.3. Typowe zadania NMT W niniejszym rozdziale przedstawimy podstawowe zadania do jakich może być wykorzystany numerycznego modelu terenu.

MATEMATYKA WYDZIAŁ MATEMATYKI - TEST 1

Stereometria bryły. Wielościany. Wielościany foremne

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

VI. FIGURY GEOMETRYCZNE i MODELE

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

PDM 3. Zakres podstawowy i rozszerzony. Plan wynikowy. STEREOMETRIA (22 godz.) W zakresie TREŚCI PODSTAWOWYCH uczeń potrafi:

Matematyka, kl. 6. Konieczne umiejętności

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

Geometria analityczna

MATURA PRÓBNA - odpowiedzi

Matematyka stosowana i metody numeryczne

Informacja o przestrzeniach Sobolewa

Analiza obrazu. wykład 1. Marek Jan Kasprowicz Uniwersytet Rolniczy Marek Jan Kasprowicz Analiza obrazu komputerowego 2009 r.

Wymagania edukacyjne z matematyki w klasie III gimnazjum

XI Olimpiada Matematyczna Gimnazjalistów

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI W KLASIE 8 SZKOŁY PODSTAWOWEJ

Całki podwójne. Definicja całki podwójnej. Jacek Kłopotowski. 25 maja Katedra Matematyki i Ekonomii Matematycznej

Matematyka z kluczem. Układ treści w klasach 4 8 szkoły podstawowej. KLASA 4 (126 h) część 1 (59 h) część 2 (67 h)

Mini tablice matematyczne. Figury geometryczne

Wymagania z matematyki KLASA VII

Wymagania edukacyjne z matematyki

Sprawdzian całoroczny kl. II Gr. A x

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

KURS WSPOMAGAJĄCY PRZYGOTOWANIA DO MATURY Z MATEMATYKI ZDAJ MATMĘ NA MAKSA. przyjmuje wartości większe od funkcji dokładnie w przedziale

Lista zadań nr 2 z Matematyki II

V Konkurs Matematyczny Politechniki Białostockiej

Wymagania edukacyjne z matematyki

ZADANIA MATURALNE - ANALIZA MATEMATYCZNA - POZIOM ROZSZERZONY Opracowała - mgr Danuta Brzezińska. 2 3x. 2. Sformułuj odpowiedź.

SZKOŁA PODSTAWOWA NR 1 IM. ŚW. JANA KANTEGO W ŻOŁYNI. Wymagania na poszczególne oceny klasa VIII Matematyka z kluczem

Wymagania eduka cyjne z matematyki

Dystrybucje, wiadomości wstępne (I)

Czy pamiętasz? Zadanie 1. Rozpoznaj wśród poniższych brył ostrosłupy i graniastosłupy.

Wymagania edukacyjne z matematyki dla klasy VIII. rok szkolny 2018/2019

Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem

Metoda objętości zadania

Robert Susmaga. Instytut Informatyki ul. Piotrowo 2 Poznań

ROZKŁAD MATERIAŁU NAUCZANIA KLASA 1, ZAKRES PODSTAWOWY

Wymagania na poszczególne oceny szkolne z. matematyki. dla uczniów klasy IIIa i IIIb. Gimnazjum im. Jana Pawła II w Mętowie. w roku szkolnym 2015/2016

Kształcenie w zakresie podstawowym. Klasa 2

Analiza obrazów - sprawozdanie nr 2

GEOPLAN Z SIATKĄ TRÓJKĄTNĄ

Zad.3. Jakub Trojgo i Jakub Wieczorek. 14 grudnia 2013

15. Rozstrzygnąć, czy dwie narysowane figury są swoimi lustrzanymi odbiciami.

ŚWIAT PONAD WYBROAŹNIĄ-czyli wyższe wymiary przestrzenne.

PRZEDMIOTOWY SYSTEM OCENIANIA- MATEMATYKA KLASA 6. Rok szkolny 2012/2013. Tamara Kostencka

Wymagania edukacyjne z matematyki w klasie 7 szkoły podstawowej

[ P ] T PODSTAWY I ZASTOSOWANIA INŻYNIERSKIE MES. [ u v u v u v ] T. wykład 4. Element trójkątny płaski stan (naprężenia lub odkształcenia)

Przedmiotowe zasady oceniania i wymagania edukacyjne z matematyki dla klasy drugiej gimnazjum

KLASA II TECHNIKUM POZIOM PODSTAWOWY PROPOZYCJA POZIOMÓW WYMAGAŃ

Pytania do spr / Własności figur (płaskich i przestrzennych) (waga: 0,5 lub 0,3)

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI W KLASIE III GIMNAZJUM

DZIAŁ 1. STATYSTYKA DZIAŁ 2. FUNKCJE

1.2. Ostrosłupy. W tym temacie dowiesz się: jak obliczać długości odcinków zawartych w ostrosłupach, jakie są charakterystyczne kąty w ostrosłupach.

ZAKRES PODSTAWOWY CZĘŚĆ II. Wyrażenia wymierne

WYMAGANIA NA POSZCZEGÓLNE OCENY MATEMATYKA KL.VII

Transkrypt:

Wizualizacja 3D obiektów i systemów biomedycznych Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski

Wejście: przykładowe zbiory danych

Wyjście: obraz Dziedzina: przestrzeń 2D (pozycje pikseli) Przeciwdziedzina: kolor piksela lub odcień szarości

Funkcyjne spojrzenie na wizualizację Wejście: zbiór danych w przestrzeni wysokowymiarowej d D m n. Wyjście: kolorowy obraz i R 2 3 = R 5. Wizualizacja: funkcja v : D m n R 5. Analiza: funkcja odwrotna v 1 : R 5 D m n.

Wyzwania w wizualizacji Wymiarowość: zbiór danych wejściowych ma znacznie większą wymiarowość niż obrazy 2D (m + n >> 2 + 3), gdzie umieścić wszystkie te wymiary? Rozmiar danych: liczba punktów wejściowych znacznie większa niż rozdzielczość ekranu, gdzie narysować wszystkie te punkty? Analiza: funkcja wizualizacji nie (w pełni) odwracalna, jak przejść od kształtów/kolorów z powrotem do danych? W jaki sposób sprawić, aby funkcja v była odwracalna?

Przykład:

Bardziej złożone przypadki: Dane o wielu zmiennych (ang. multivariate): f : R 3 R n>>1 Dane wielowymiarowe (ang. multidimensional): f : R m>>3 R gdzie narysować wszystkie m wymiarów na obrazie 2D? Dane nieprzestrzenne (ang. non-spatial): f : D C, gdzie D, C nie są podzbiorami R k grafy, drzewa, bazy danych, kody źródłowe... jak przekształcić D, C na atrybuty obrazu (pozycję, kolor)?

Problemy: Co jeśli nie rozróżniamy dobrze kolorów? (krok 1) Co jeśli nie potrafimy dobrze porównywać kolorów? (krok 2) Co jeśli mapa kolorów jest zła? (krok 3, np. klika wartości s 1, s 2 odpowiada temu samemu kolorowi c) Co jeśli nie ma mapy kolorów?...

Dane ciągłe (ang. continuous data) Matematycznie, dane ciągłe mogą być modelowane jako funkcja f : D C, gdzie D R d jest dziedziną (ang. domain), a C R c jest przeciwdziedziną (ang. codomain). W ramach przypomnienia funkcja f jest ciągła w punkcie p D (def. Cauchy ego) jeśli ε>0 δ>0 x D x p < δ f (x) f (p) < ε.

Funkcja f jest rzędu k jeśli funkcja jest k-krotnie różniczkowalna i wszystkie pochodne do rzędu k są ciągłe. Oznaczamy to następująco f C k. Funkcję, której pochodna jest ciągła na przedziałach zwartych nazywamy funkcją kawałkami ciągło-różniczkowalną lub kawałkami gładką.

Trójka D = (D, C, f ) definiuje ciągły zbiór danych. Wymiar d przestrzeni R d, w której zawarte jest D nazywamy wymiarem geometrycznym. Wymiar s d dziedziny D nazywamy wymiarem topologicznym zbioru danych. Przykład: Jeśli D jest płaszczyzną lub powierzchnią zawartą w R 3, to s = 2 i d = 3. Jeśli D jest prostą lub krzywą zawartą w R 3, to s = 1 i d = 3. Na wymiar topologiczny możemy patrzeć jak na liczbę niezależnych zmiennych potrzebnych do reprezentowania D, np. dla powierzchni w R 3 wystarczą 2 niezależne zmienne.

Kowymiarem nazywamy różnicę d s. W wizualizacji naukowej najczęściej wymiar geometryczny jest ustalony, d = 3. Jedynie zmianie ulega wymiar topologiczny. W takim przypadku wymiar topologiczny nazywany jest również wymiarem zbioru danych. Wartości funkcji często nazywane są atrybutami zbioru danych, a wymiar przeciwdziedziny C nazywany jest wymiarem atrybutów.

Dane próbkowane (ang. sampled data) W wizualizacji naukowej nie zawsze używamy danych w ciągłej reprezentacji. Jest to konsekwencją tego, że niektóre operacje wykonywane na danych (np. przetwarzanie, filtrowanie, rendering) nie są proste ani efektywne na danych ciągłych. Z tego powodu większość metod operuje na danych próbkowanych. Wyróżniamy dwie operacje związane z danymi próbkowanymi i ciągłymi: próbkowanie mając dany ciągły zbiór danych tworzymy dane próbkowane, rekonstrukcja mając dane próbkowane odtwarzamy (aproksymujemy) oryginalne ciągłe dane.

Dane próbkowane, aby były użyteczne w praktyce, muszą spełniać kilka wymagań. Dane muszą być: dokładne musimy mieć kontrolę nad tworzeniem próbkowanego zbioru danych D s ze zbioru ciągłego D c w ten sposób, że D c może być zrekonstruowane z D s z dowolnie małym błędem określonym przez użytkownika, minimalne D s zawiera najmniejszą liczbę punktów potrzebnych do rekonstrukcji z zadanym błędem, ogólne możemy w łatwy sposób zamienić różne operacje na danych, które mogliśmy wykonać na D c ich wersjami dla D s, wydajne rekonstrukcja oraz operowanie na danych D s może być wykonane wydajnie, proste możemy stosunkowo łatwo stworzyć implementację reprezentacji D s oraz operacji wykonywanych na D s.

Interpolacja Problem rekonstrukcji definiujemy następująco: Mamy dane próbkowane {p i, f i } zawierające N punktów p i D i wartości f i C. Chcemy znaleźć funkcję ciągłą f : D C taką, że aproksymuje funkcję f. Funkcja zrekonstruowana powinna spełniać warunek: f (p i ) = f (p i ) = f i.

Jednym ze sposobów zdefiniowania funkcji f jest f = N f i φ i, i=1 gdzie φ i : D C są nazywane funkcjami bazowymi lub funkcjami interpolacji. Ponieważ chcemy, aby f (p i ) = f (p i ), więc dla każdego j {1, 2,..., N} N f i φ i (p j ) = f j (1) i=1

Rozważmy funkcję g, która równa jest 0 wszędzie poza p j, gdzie g(p j ) = 1. Wstawiając do (1) otrzymujemy φ i (p j ) = { 1, i = j, 0, i j. Powyższy warunek często nazywany jest ortogonalnością funkcji bazowych.

Rozważmy funkcję g(x) = 1 dla x D. Wstawiając g do (1) otrzymujemy N φ i (p j ) = 1, i=1 czyli suma funkcji bazowych jest równa w punktach p j. Jeśli założymy, że suma ta jest równa 1 dla x D, tzn. pj N φ i (x) = 1, x D, i=1 to możemy zrekonstruować g wszędzie w D. Własność dana powyższym wzorem nazywana jest normalnością funkcji bazowych lub też rozkładem jedynki (ang. partition of unity). Większość funkcji bazowych używanych w praktyce ma własność ortogonalności i normalności.

Wzór interpolacyjny staje się nieefektywny jeśli f = N f i φ i, i=1 N jest duże i musimy obliczać φ i we wszystkich tych punktach, φ i jest skomplikowane. W praktyce używamy funkcji bazowych, które: są niezerowe na małej części D (tzw. ograniczony nośnik), mają taką samą prostą postać w każdym punkcie p i.

Siatki i komórki (ang. grids and cells) Siatka jest podziałem danej dziedziny D R d w zbiór komórek czasem nazywanych elementami, które oznaczamy c i. Najczęściej używanymi komórkami są łamane w R, wielokąty w R 2, wielościany w R 3 itd. Ponadto, suma komórek pokrywa D, tzn. i c i = D, oraz komórki nie przecinają się, tzn. c i c j = dla i j. Wierzchołki komórek zazwyczaj są punktami p i R d zbioru danych próbkowanych.

Najprostszym przykładem funkcji bazowych są stałe funkcje bazowe. Dla siatki składającej się z N komórek {c 1, c 2,..., c N } definiujemy funkcje bazowe φ 0 i następująco: φ 0 i (x) = { 1, x ci, 0, x c i. 0 w indeksie funkcji φ oznacza, że jest to funkcja stała. Tak zdefiniowane funkcje bazowe są ortogonalne i normalne. Ten typ interpolacji nazywany jest interpolacją najbliższego sąsiada ponieważ każdemu x D przypisujemy wartość komórki, której środek leży najbliżej x.

Oryginalna funkcja f (x, y) = e (x2 +y 2 ) Interpolacja najbliższego sąsiada

Stałe funkcje bazowe są proste w implementacji, działają z komórkami dowolnego kształtu, ale zapewniają słabą aproksymację f oryginalnej funkcji f. W celu lepszej aproksymacji musimy użyć funkcji bazowych wyższego rzędu. Następnymi, prostymi funkcjami bazowymi są liniowe funkcje bazowe. W odróżnieniu od stałych funkcji bazowych musimy dokonać pewnych założeń na temat komórek.

Niech c będzie czworokątną komórką o wierzchołkach (v 1, v 2, v 3, v 4 ), gdzie v 1 = (0, 0), v 2 = (1, 0), v 3 = (1, 1), v 4 = (0, 1). Komórkę c będziemy nazywać komórką referencyjną w R 2. Niech (r, s) oznaczają współrzędne w komórce referencyjnej (współrzędne referencyjne), a (x, y) w dziedzinie D. Ogólnie niech (r 1, r 2,..., r d ) oznaczają współrzędne w komórce referencyjnej, a (x 1, x 2,..., x d ) w dziedzinie D.

Dla komórki referencyjnej c definiujemy: Φ 1 1(r, s) = (1 r)(1 s), Φ 1 2(r, s) = r(1 s), Φ 1 3(r, s) = rs, Φ 1 4(r, s) = (1 r)s Funkcje bazowe Φ są to funkcje lokalne, a funkcje φ, których używaliśmy wcześniej, globalne. Ponadto funkcje Φ 1 i są ortogonalne i normalne. Dla każdego punktu (r, s) c możemy zdefiniować: 4 f (r, s) = f i Φ 1 i (r, s), i=1 gdzie f 1, f 2, f 3, f 4 to wartości dane w wierzchołkach komórki.

Chcemy wykonać rekonstrukcję dla dowolnej komórki c = (p 1, p 2, p 3, p 4 ) pewnej dowolnej siatki. Jak to zrobić? Dla komórki c definiujemy transformację współrzędnych T : [0, 1] 2 R 3, która przekształca komórkę referencyjną na c. Funkcja T powinna być: prostym wyrażeniem działającym na dowolnej komórce, spełniać warunek T (v i ) = p i dla i = 1, 2, 3, 4, liniowa (ze względu na prostotę i efektywność obliczeniową).

Funkcję T przyjmujemy jako: (x, y, z) = T (r, s) = 4 p i Φ 1 i (r, s). Funkcja T przekształca komórkę referencyjną na komórkę w świecie. Zatem T 1 przekształca punkt (x, y, z) komórki w świecie na punkt (r, s) komórki referencyjnej. i=1 Zatem rekonstrukcja dla komórki c wygląda następująco: f (x, y, z) = 4 f i Φ 1 i (T 1 (x, y, z)). i=1 Rozumowanie możemy rozszerzyć na inne typy komórek, ale funkcja T 1 zależy od rodzaju komórki i z tego powodu musimy ją wyznaczać dla każdego rodzaju z osobna.

Wiemy jak zrekonstruować funkcję dla pojedynczej komórki. Rekonstrukcja dla siatki (kawałkami klasy C 1 ) zdefiniowana jest następująco: 4 f (x, y, z) = f i φ 1 i (x, y, z), i=1 gdzie 0, gdy (x, y, z) cells(p i ), φ 1 i (x, y, z) = Φ 1 j (T 1 (x, y, z)), gdy (x, y, z) c = {v 1, v 2, v 3, v 4 } i v j = p i, gdzie cells(p i ) oznacza komórkę, której jeden z wierzchołków to p i.

Oryginalna funkcja f (x, y) = e (x2 +y 2 ) Interpolacja najbliższego sąsiada Interpolacja liniowa

Proces próbkowania i rekonstrukcji nie jest ograniczony tylko do geometrii. W podobny sposób możemy również potraktować cieniowanie powierzchni, które możemy przedstawić jako s : R 3 R 3 R czyli (p, n) l. Cieniowanie płaskie Cieniowanie Gouraud Powierzchnia: inter. liniowa Kolory: inter. najbliższy sąsiad Powierzchnia: inter. liniowa Kolory: inter. liniowa

Dyskretny zbiór danych: D s = ({p i }, {c i }, {f i }, {Φ k i }), gdzie p i to punkty siatki, c i to komórki siatki, f i wartości, Φ k i to referencyjne funkcje bazowe. Kształt komórki + funkcje bazowe wyznaczają typ komórki. Liczba i pozycja punktów wyznacza typ siatki. Liczba i typ wartości wyznaczają typ atrybutu.

Typy komórek Jeśli chcemy aproksymować dziedzinę D za pomocą sumy komórek i c i, to wymiar d komórki c i musi być taki sam jak wymiar topologiczny dziedziny D. Zatem jeśli D jest krzywą, to używamy komórek w postaci linii. Jeśli D jest powierzchnią, to używamy planarnych komórek, takich jak wielokąty. Jeśli D jest objętością, to używamy komórek wolumetrycznych (objętościowych), takich jak czworościany.

Wierzchołek Wymiar d = 0. Komórka jest identyczna z pojedynczym wierzchołkiem c = {v 1 }. Komórka posiada jedną stałą funkcję bazową: Φ 0 1 = 1 W praktyce nie robimy rozróżnienia pomiędzy punktami i wierzchołkami takich komórek. Tego typu komórki służą jako modelowanie abstrakcji.

Odcinek Wymiar d = 1. Komórka składa się z dwóch wierzchołków, c = {v 1, v 2 }. Komórki składające się z linii używane są do interpolowania wzdłuż dowolnych krzywych zanurzonych w dowolnej przestrzeni. Zapewnia interpolację liniową. Dla komórki referencyjnej o wierzchołkach v 1 = 0, v 2 = 1 liniowe funkcje bazowe są następujące: Φ 1 1(r) = 1 r, Φ 1 2(r) = r.

Dla punktu p w komórce (p 1, p 2 ) transformacja T 1 ma postać: T 1 (p) = p p 1 p 2 p 1.

Trójkąt Wymiar d = 2. Komórka składa się z trzech wierzchołków, c = {v 1, v 2, v 3 }. Trójkąty są używane do interpolacji wzdłuż powierzchni zanurzonej w dowolnej przestrzeni. Możemy wykonywać interpolację liniową. Dla komórki referencyjnej o wierzchołkach v 1 = (0, 0), v 2 = (1, 0), v 3 = (0, 1) liniowe funkcje bazowe są następujące: Φ 1 1(r, s) = 1 r s, Φ 1 2(r, s) = r, Φ 1 3(r, s) = s.

Dla punktu p w komórce (p 1, p 2, p 3 ) transformacja T 1 ma postać: T 1 (p) = ( (p p1 ) (p 3 p 1 ) (p 2 p 1 ) (p 3 p 1 ), (p p ) 1) (p 2 p 1 ) (p 3 p 1 ) (p 2 p 1 )

Niech A 123 oznacza pole powierzchni trójkąta o wierzchołkach p 1, p 2, p 3 oraz niech p będzie punktem wewnątrz trójkąta. Niech A 12 będzie polem powierzchni trójkąta o wierzchołkach p, p 1, p 2, a A 13 trójkąta o wierzchołkach p, p 1, p 3. Wówczas r = A 13 /A 123 oraz s = A 12 /A 123. Ponadto jeśli dołożymy t = 1 r s, to trójkę (r, s, t) nazywamy współrzędnymi barycentrycznymi. Pole trójkąta o wierzchołkach p 1, p 2, p 3 możemy obliczyć korzystając ze wzoru: (p 3 p 1 ) (p 2 p 1 ) Jeśli p leży wewnątrz trójkąta, to r, s [0, 1].

Czworokąt (ang. quadrilateral quad) Wymiar d = 2. Komórka składa się z czterech wierzchołków, c = (v 1, v 2, v 3, v 4 ). Używane do interpolacji wzdłuż powierzchni zanurzonej w dowolnej przestrzeni. Możemy wykonać interpolację liniową. Dla komórki referencyjnej o wierzchołkach v 1 = (0, 0), v 2 = (1, 0), v 3 = (1, 1), v 4 = (0, 1) liniowe funkcje bazowe są następujące: Φ 1 1(r, s) = (1 r)(1 s), Φ 1 2(r, s) = r(1 s), Φ 1 3(r, s) = rs, Φ 1 4(r, s) = (1 r)s.

Znalezienie transformacji T 1 dla dowolnego czworokąta i funkcji bazowych z poprzedniego slajdu nie jest proste. Jednym z rozwiązań jest numeryczne znalezienie r, s jako funkcji x, y, z.

Dla punktu p w prostokątnej komórce (p 1, p 2, p 3, p 4 ) transformacja T 1 ma postać: T 1 (p) = ( (p p1 ) (p 2 p 1 ) p 2 p 1 2, (p p ) 1) (p 4 p 1 ) p 4 p 1 2

Czworościan (ang. tetrahedron) Wymiar d = 3. Komórka składa się z czterech wierzchołków, c = (v 1, v 2, v 3, v 4 ). Używane do interpolacji objętości. Możemy wykonywać interpolację liniową. Dla komórki referencyjne o wierzchołkach v 1 = (0, 0, 0), v 2 = (1, 0, 0), v 3 = (0, 1, 0), v 4 = (0, 0, 1) liniowe funkcje bazowe są następujące: Φ 1 1(r, s, t) = 1 r s t, Φ 1 2(r, s, t) = r, Φ 1 3(r, s, t) = s, Φ 1 4(r, s, t) = t.

Podobnie jak dla trójkąta, korzystając ze współrzędnych barycentrycznych możemy wyznaczyć T 1 dla komórki o wierzchołkach p 1, p 2, p 3, p 4 : gdzie T 1 (p) = (r, s, t), r = (p p 4) ((p 1 p 4 ) (p 3 p 4 ) (p 1 p 4 ) ((p 2 p 4 ) (p 3 p 4 ), s = (p p 4) ((p 1 p 4 ) (p 2 p 4 ) (p 1 p 4 ) ((p 2 p 4 ) (p 3 p 4 ), t = (p p 3) ((p 1 p 3 ) (p 2 p 3 ) (p 1 p 4 ) ((p 2 p 4 ) (p 3 p 4 ).

Sześciościan (ang. hexahedron hex) Wymiar d = 3. Komórka składa się z ośmiu wierzchołków, c = (v 1, v 2,..., v 8 ). Używane do interpolacji objętości. Możemy wykonywać interpolację liniową. Komórka referencyjna to sześcian o krawędzi 1, którego wierzchołek v 1 leży w początku układu współrzędnych.

Liniowe funkcje bazowe są następujące: Φ 1 1(r, s, t) = (1 r)(1 s)(1 t), Φ 1 2(r, s, t) = r(1 s)(1 t), Φ 1 3(r, s, t) = rs(1 t), Φ 1 4(r, s, t) = (1 r)s(1 t), Φ 1 5(r, s, t) = (1 r)(1 s)t, Φ 1 6(r, s, t) = r(1 s)t, Φ 1 7(r, s, t) = rst, Φ 1 8(r, s, t) = (1 r)st.

Podobnie jak w przypadku dowolnych czworokątów, dla dowolnych sześciościanów znalezienie T 1 przy funkcjach bazowych z poprzedniego slajdu jest trudne. Jednym z rozwiązań jest użycie metod numerycznych.

Dla punktu p w komórce w kształcie prostopadłościanu o wierzchołkach (p 1, p 2,..., p 8 ) transformacja T 1 ma postać: T 1 (p) = ( (p p1 ) (p 2 p 1 ) p 2 p 1 2, (p p 1) (p 4 p 1 ) p 4 p 1 2, (p p 1 ) (p 5 p 1 ) p 5 p 1 2 )

Inne typy Niektóre programy korzystają z komórek: kwadratów, pikseli, pasków trójkątów, wielokątów w 2D, sześcianów lub wokseli w 3D. Niektóre programy korzystają również z kwadratowych komórek, tzn. komórek, w których używamy kwadratowych funkcji bazowych.

Typy siatek Siatka równomierna (ang. uniform grid) Dziedzina D podzielona jest na siatkę składającą się z wyrównanych do osi pudełek (ang. axis-aligned box), np. odcinków dla d = 1, prostokątów dla d = 2 czy prostopadłościanów dla d = 3. W ogólności tego typu pudełko możemy zapisać jako zbiór d przedziałów ((m 1, M 1 ), (m 2, M 2 ),..., (m d, M d )), gdzie m i, M i R.

Niech δ 1, δ 2,..., δ d R będą odległościami (lub krokami próbkowania) pomiędzy kolejnymi punktami względem poszczególnych wymiarów D. Wówczas punkt na siatce równomiernej wyraża się wzorem: p i = (m 1 + n 1 δ 1, m 2 + n 2 δ 2 +... + m d + n d δ d ), gdzie n 1, n 2,..., n d N. Liczba punktów siatki w kierunku i wynosi: N i = 1 + (M i m i )/δ i. Współrzędne punktów siatki możemy wyrażać jako (n 1, n 2,..., n d ). Nazywane czasami współrzędnymi strukturyzowanymi (ang. structured coordinates).

Regularność punktów w równomiernej siatce sprawia, że implementacja jest prosta i ekonomiczna. Do zapamiętania równomiernej siatki wystarczy zapamiętać (m i, M i, δ i ) lub (m i, M i, N i ) dla każdego z wymiarów. Punkty siatki możemy uporządkować zgodnie z porządkiem leksykograficznym. Do tego celu możemy użyć wzoru i = n 1 + ( ) d k 1 n k N l. k=2 l=1

Siatka prostokątna (ang. rectilinear grid) Reprezentowanie dziedzin o kształcie, który nie jest wyrównany do osi wymaga zawarcia takiej dziedziny w wyrównanym do osi pudełku ograniczającym. Ponieważ punkty są rozłożone równomiernie, więc marnujemy pamięć na obszar poza dziedziną. Aby dokładnie reprezentować funkcję o nierównomiernej zmianie musimy użyć gęstszego próbkowania równomiernej siatki lub skorzystać z siatki nierównomiernej.

Siatka prostokątna jest również wyrównana do osi układu, ale punkty nie są rozmieszczone w sposób równomierny. Definiujemy odrębne kroki próbkowania δ ij dla każdego wiersza punktów, które dzielą współrzędną n i. Punkt na siatce prostokątnej może być zapisany jako p i = (x 1, x 2,..., x d ), gdzie x i = m i + n i 1 j=0 δ ij. W celu zapamiętania siatki potrzebujemy zapamiętać (m i, M i ), liczbę punktów w każdym z d kierunków oraz kroki próbkowania δ ij dla i {1, 2,..., d}, j {1, 2,..., N i }.