(lathe). - RetSat1
Transkrypt
(lathe). - RetSat1
Temat 10: Tworzenie brył obrotowych poprzez obrót krzywych (lathe).
W poprzednim temacie wymodelowaliśmy kieliszek obracając krzywą Beziera wokół osi Y.
Zastosowaliśmy w tym celu polecenie lathe. Krzywa Beziera (bezier_spline) jest najbardziej
złożoną postacią krzywej mogącą wystąpić w tym poleceniu. Najprostszym typem krzywej jest łamana
łącząca dane punkty (linear_spline). Zapis polecenia tworzącego bryłę obrotową ma postać:
lathe {
(1,10)
ilość_punktów
lista_punktów_krzywej
własności_materiału }
(1,7)
Punkty tworzące krzywą leżą w płaszczyźnie XY, zatem ich współrzędne
z są zerami i nie uwzględniamy ich w zapisie.
(5,5)
(5,4)
Ćwiczenie 059
W ćwiczeniu tym utworzymy krzywą powstałą poprzez obrót łamanej
łączącej punkty: (0,0), (2,1), (5,4), (5,5), (1,7), (1,10) wokół osi Y (patrz
rysunek po prawej).
(0,0)
Wpisz poniższy kod i zrenderuj scenę:
Grafika 3D – program POV-Ray
(2,1)
- 73 -
Nasza krzywa (a co za tym idzie również bryła) jest nieco kanciasta. Aby ją trochę wygładzić zamiast
parametru linear_spline można użyć parametru quadratic_spline (krzywa łącząca punkty
będzie przybliżana krzywymi stopnia drugiego).
Ćwiczenie 060
W kodzie poprzedniego ćwiczenia zastąp parametr linear_spline przez quadratic_spline i
zrenderuj scenę:
Zauważ, że nasze naczynie pozbawione jest dna. Stało się tak dlatego, że pierwszy punkt stał się punktem
kontrolnym i początek obracanej linii jest teraz w punkcie (2,1). Aby tego uniknąć wystarczy przed punkt
początkowy (1,1) wstawić punkt kontrolny (tym razem (0,-1)) i oczywiście zwiększyć podaną liczbę
punktów do 7:
Grafika 3D – program POV-Ray
- 74 -
Wektor łączący dodany punkt kontrolny (0,-1) z punktem początkowym (0,0) jest styczny do tworzonej
krzywej w punkcie (0,0). Ponieważ położony jest on w pionie, więc u dołu bryły pojawił się „czubek”.
Aby wygładzić dół naczynia wstawmy punkt leżący na tym samym poziomie, co punkt początkowy (0,0).
Niech to będzie (-2,0):
Ćwiczenie 061
Można jeszcze bardziej wygładzić krzywą stosując parametr cubic_spline, czyli krzywe stopnia
trzeciego:
Tym razem „obcięło” nam szyjkę: krzywa łączy punkty od drugiego do przedostatniego, zatem punkt
(1,10) nie został wykorzystany (stał się drugim punktem kontrolnym).
Grafika 3D – program POV-Ray
- 75 -
Aby „odzyskać” szyjkę musimy na końcu listy punktów dodać jeszcze jeden punkt. Niech to będzie punkt
(1,12). Oczywiście liczba punktów zwiększy się do 8:
Wybór innego punktu kontrolnego (np. (5,12)) może zmienić nieco kształt szyjki:
Oczywiście najgładsze linie i najbardziej dokładne kształty uzyskamy stosując krzywe Beziera, jak to
miało miejsce przy modelowaniu kieliszka.
Grafika 3D – program POV-Ray
- 76 -
Ćwiczenie 062
Nieco inaczej sprawa przedstawia się w przypadku obrotu krzywych zamkniętych (to jest takich, w
których koniec pokrywa się z początkiem)
Przy nieco zmienionych ustawieniach kamery dokonajmy obrotu
kwadratu (patrz rysunek) wokół osi Y:
(4,7)
(6,5)
(2,5)
(4,3)
(0,0)
Również tym razem przy zmianie parametru linear_spline na quadratic_spline lub
cubic_spline trzeba dodać dodatkowe punkty kontrolne:
quadratic_spline
cubic_spline
W tym przypadku krzywa stała się gładsza, a bryła bardziej zbliżona do torusa.
Grafika 3D – program POV-Ray
- 77 -
Ćwiczenie 063
Nadszedł właściwy moment, aby wymodelować kieliszek i napełnić go płynem. Kieliszek utworzymy
podobnie, jak w ćwiczeniu 058, ale tym razem ważne będzie od którego punktu zaczniemy rysowanie
krzywej Beziera.
Uruchom program KrzywaBeziera. Kliknij drugi przycisk na belce narzędziowej i zaznacz opcję
Ustaw punkt <0,0>. Kliknij w białym obszarze roboczym. Ukaże się układ współrzędnych.
Zaznacz opcję Ustaw punkt <1,1> i kliknij w I ćwiartce tego układu. Masz zaznaczony kwadrat o
boku 1 (por. ćw. 58).
Teraz kliknij pierwszą ikonę i przycisk [Utwórz Krzywą]. W trybie pracy Edycja klikaj
dwukrotnie kolejno w każdym punkcie kontrolnym tworzącym krzywą. Pierwszy musi być punkt
dna czaszy kieliszka położony na osi Y (ten w kolorze zielonym). Ułatwi to nam wygenerowanie
kodu zawartości kieliszka. Kształt krzywej możesz dopasować przeciągając czerwone punkty kontrolne.
Postaraj się osiągnąć efekt zbliżony do poniższego:
Kliknij trzeci przycisk na belce narzędziowej. Zaznacz opcję Utwórz całą scenę oraz Lathe
i kliknij przycisk [Do schowka]. Kod sceny zostanie skopiowany. Wklej go do nowego pliku
POV-Ray’a i zapisz scenę. Nie zamykaj programu KrzyweBeziera.
Kliknij ponownie pierwszy przycisk na belce narzędziowej i wybierz tryb pracy Usuwanie punktu.
Usuń wszystkie punkty oprócz tych, które wyznaczają zawartość kieliszka (na naszym rysunku są
to pierwsze trzy wstawione punkty):
Grafika 3D – program POV-Ray
- 78 -
Teraz wybierz ponownie tryb pracy Edycja i zamknij krzywą (najlepiej tak, aby ciecz tworzyła menisk):
Kliknij trzeci przycisk na belce narzędziowej. Odznacz opcję Utwórz całą scenę oraz Lathe
i kliknij przycisk [Do schowka]. Kod zawartości kieliszka zostanie skopiowany. Wklej go do
nowego pliku POV-Ray’a pod poprzednim kodem i zapisz scenę.
Usuń stary numer wersji i dokonaj zmian w kodzie tak, aby widoczny był cały kieliszek:
Grafika 3D – program POV-Ray
- 79 -
Teraz ustalamy własności materiału kieliszka tak, aby miał on wygląd szkła:
Grafika 3D – program POV-Ray
- 80 -
Ponieważ bryła odpowiadająca cieczy w kieliszku ściśle przylega do jego ścianek, więc nie jest widoczna
(oprócz górnej powierzchni). Najniżej położonym punktem tej bryły jest punkt (0,1) (pierwszy na liście).
Musimy zatem przesunąć bryłę w dół o 1 (do punktu (0,0)), przeskalować tak, by bryła w sposób
niewidoczny się zmniejszyła i przesunąć o 1 w górę (we właściwe położenie):
Wystarczy teraz zamiast koloru ustalić odpowiednie właściwości materiału dla cieczy w kieliszku:
Grafika 3D – program POV-Ray
- 81 -
Na koniec wstawmy do naszej sceny cienki walec symbolizujący słomkę włożoną do cieczy w kieliszku:
Ćwiczenie 064
Wzorując się na poprzednim ćwiczeniu utwórz scenę ze szklanym dzbankiem napełnionym wodą, po
powierzchni której pływa lekka plastikowa piłeczka:
Grafika 3D – program POV-Ray
- 82 -