Przekształcenia geometryczne. Dorota Smorawa
|
|
- Ludwika Świątek
- 6 lat temu
- Przeglądów:
Transkrypt
1 Przekształcenia geometryczne Dorota Smorawa
2 Przekształcenia geometryczne Na poprzednich laboratoriach już dowiedzieliśmy się, na czym polegają podstawowe przekształcenia geometryczne. Trzy podstawowe przekształcenia to obrót glrotate, przesunięcie gltranslate oraz skalowanie glscale. Są to typowe przekształcenia geometryczne, które korzystając z biblioteki OpenGL używamy w bardzo prosty sposób. W rzeczywistości biblioteka OpenGL dokonuje przemnożenia aktualnej macierzy modelowania przez macierz odpowiedniego przekształcenia, wyliczając w ten sposób nowe położenie dla określonych wierzchołków w przestrzeni kartezjańskiej: Jeśli chcemy przykładowo dokonać obrotu wokół osi y, to wywołujemy funkcję: glrotatef(alfa, 0.0f, 1.0f, 0.0f) //alfa to kąt obrotu Jeśli chcemy przykładowo dokonać przemieszczenia o wektor [1,1,0], to wywołujemy funkcję: gltranslatef(1.0f, 1.0f, 0.0f) Jeśli chcemy przykładowo dokonać pomniejszenia o połowę, to wywołujemy funkcję: glscalef(0.5f, 0.5f, 0.5f)
3 Stos macierzy Jeśli na naszej scenie znajduje się tylko jeden obiekt, na którym dokonujemy przekształceń wówczas w zasadzie wszelkie przekształcenia przebiegają pod całkowitą kontrolą. Wiemy co, w jaki sposób i o ile chcemy zmienić. Zupełnie inna sytuacja ma miejsce, kiedy na scenie mamy już przynajmniej dwa obiekty, na których możemy dokonywać operacje przekształceń geometrycznych. Jeśli nie zabezpieczymy naszej sceny, wówczas użyte przez nasz przekształcenia dotyczyć będą wszystkich obiektów. Chcemy obrócić tylko widoczny obiekt, a obróci nam się jeszcze kamera, podłoże, światło itd.. Na szczęście biblioteka OpenGL udostępnia mechanizm stosu macierzy. Stos macierzy pozwala na wykonanie przekształceń tylko dla obiektów, które na takim stosie umieścimy. Do umieszczenia macierzy na stosie służy funkcja glpushmatrix(), natomiast do zdejmowania ze stosu funkcja glpopmatrix();
4 Stos macierzy Jeśli na scenie mamy dwa obiekty i dla jednego chcemy zastosować obrót a dla drugiego przesunięcie, to powinniśmy zastosować stos macierzy dla obu przekształceń w następujący sposób: glpushmatrix() // umieszczenie macierzy na stosie glrotatef(30.0f, 0.0f, 1.0f, 0.0f); // obrót o kąt 30 stopni w prawo wokół osi y glutsolidtorus(0.2f, 0.4f, 80, 40); // narysowanie torusa glpopmatrix() // zdjęcie macierzy ze stosu glpushmatrix() // umieszczenie macierzy na stosie gltranslatef(10.0f, 0.0f, 20.0f); // przesunięcie o wektor [10,0,20] glutsolidsphere(0.2f, 17, 9); // narysowanie kuli glpopmatrix() // zdjęcie macierzy ze stosu
5 Macierz jednostkowa Dokonując jakiegokolwiek przekształcenia na obiekcie w rzeczywistości zmieniamy jego macierz modelowania. Każde kolejne przekształcenie wiąże się z tym, iż musimy pamiętać, co zrobiliśmy wcześniej i w jakim miejscu znajduje się obecnie obiekt. Jest to o tyle kłopotliwe, że przy wielu przekształceniach łatwo można się pogubić. W bibliotece OpenGL jest funkcja, która umożliwia powrót macierzy obiektu do stanu początkowego. Jest to tak zwana macierz jednostkowa glloadidentity(); Jeśli chcemy np. dokonać najpierw na obiekcie przesunięcia o wektor [0,1,0], a później o wektor [1,0,0] możemy uzyskać dwa różne położenia końcowe obiektu, w zależności od tego, czy po pierwszym przekształceniu powrócimy za pomocą macierzy jednostkowej do położenia początkowego, czy nie.
6 Macierz jednostkowa Przypadek bez użycia macierzy jednostkowej: glmatrixmode(gl_modelview); // wywołanie macierzy modelowania gltranslatef(0.0f, 1.0f, 0.0f); // przesunięcie o wektor [0,1,0] glutsolidsphere(0.2f, 17, 9); // narysowanie kuli gltranslatef(1.0f, 0.0f, 0.0f); // przesunięcie o wektor [1,0,0] glutsolidsphere(0.2f, 17, 9); // narysowanie kuli Przypadek z użyciem macierzy jednostkowej: glmatrixmode(gl_modelview); // wywołanie macierzy modelowania gltranslatef(0.0f, 1.0f, 0.0f); // przesunięcie o wektor [0,1,0] glutsolidsphere(0.2f, 17, 9); // narysowanie kuli glloadidentity(); // powrót do początkowego położenia gltranslatef(1.0f, 0.0f, 0.0f); // przesunięcie o wektor [1,0,0] glutsolidsphere(0.2f, 17, 9); // narysowanie kuli
7 Niezależne poruszanie obiektów Stosując stos macierzy oraz macierz jednostkową możemy w sposób niezależny poruszać każdym obiektem użytym na scenie z osobna. Jest to o tyle przydatne, gdyż najwięcej problemów pojawia się w momencie, gdy na scenie oprócz widocznych obiektów mamy jeszcze umieszczone oświetlenie oraz kamerę. Podstawowe przekształcenia geometryczne stosuje się zarówno do obiektów widocznych na scenie, jak również do obiektów wirtualnych, jak np. kamera, lub do wszelkiego rodzaju świateł. Stos macierzy pozwala na bezpieczne poruszanie się po scenie kamerą, światłem w sposób całkowicie kontrolowany. Możemy niezależnie poruszać każdym obiektem, biorącym czynny udział w scenie 3D
8 Pojęcie aktora i widza Modelowanie scen 3D wnosi ze sobą kilka pojęć, których nie można pominąć. Tworząc scenę 3D tworzymy obiekty widoczne, dodajemy oświetlenie, dodajemy kamerę. Każdy z tych elementów nosi w modelowaniu 3D swoją odpowiednią dla przeznaczenia nazwę. Należy tutaj wspomnieć o dwóch podstawowych pojęciach, aktora i widza. Aktorzy, to wszystkie obiekty widoczne na scenie, biorące czynny udział w budowaniu sceny. Nie chodzi tu wyłącznie o ludzkie postaci, aktorzy to drzewa, samochody, ludzie, zwierzęta itd. Są też aktorzy, którzy w sposób bierny oddziałują na scenę, to np. różnego rodzaju oświetlenie. Pojęcie widza można utożsamiać z obserwatorem sceny, użytkownikiem gry, symulatora itd. Do tego pojęcia właśnie należy zaliczyć obiekty zwane kamerami, które definiują punkt widzenia i sposób poruszania się obserwatora.
9 Kamera Kamera utożsamiana jest z widzem, obserwatorem sceny 3D. Możemy obserwować scenę z jednej kamery, możemy przełączać się pomiędzy wieloma kamerami, możemy poruszać się po scenie. Ruch kamery po scenie wiąże się z modyfikacją przestrzeni widocznej, a w zasadzie przestrzeni kartezjańskiej zdefiniowanej dla aktorów tej sceny. Krok do przodu, to przesunięcie całego świata w kierunku dodatnim współrzędnej opisującej głębię. W bibliotece OpenGL nie ma takiego obiektu, jak kamera. Kamera to pojęcie obiektu wirtualnego, którego zachowanie możemy zaprogramować. Aby zdefiniować ruch kamery po scenie możemy wykorzystać funkcję definiującą przekształcenie punktu widzenia glulookat.
10 Klawisze specjalne W podanym przykładzie pojawiła się funkcja Funkcja_klawisze_specjalne. Funkcja ta odpowiada za wykorzystywanie klawiszy specjalnych z klawiatury, m.in. Strzałek, klawiszy funkcyjnych itp. W funkcji tej parametrami nie są znaki, a specjalnie zdefiniowane nazwy klawiszy specjalnych. Wywołanie tej funkcji odbywa się w funkcji main w następujący sposób: glutspecialfunc (Funkcja_klawisze_specjalne);
11 Pomocnicza biblioteka Oprócz bibliotek podstawowych dostępnych jest sporo pomocniczych bibliotek, które ułatwiają życie programistom scen 3D. Taką biblioteką jest biblioteka pomoc, która została udostępniona. Biblioteka ta ma w sobie zdefiniowany ruch kamery po scenie. Oczywiście taką kamerę należy w odpowiedni sposób zainicjować: #include "pomoc/glpomoc.h // dołączenie biblioteki GLPFrame framecamera; // obiekt typu GLPFrame //Inicjacja kamery w funkcji sceny glpinitframe (&framecamera); // wywołanie kamery w funkcji sceny glpapplycameratransform (&framecamera);
12 Pomocnicza biblioteka Ruch kamery po scenie do góry i na dół: void Funkcja_klawiatury (unsigned char key, int x, int y) { switch (key) { case 'u': glpmoveframeup (&framecamera, 0.2f); break; case 'd': glpmoveframeup (&framecamera, -0.2f); break; } //odswiezenie okna glutpostredisplay (); }
13 Pomocnicza biblioteka Ruch kamery po scenie zdefiniowany klawiszami strzałek: void Funkcja_klawisze_specjalne (int key, int x, int y) { switch (key) { case GLUT_KEY_LEFT: glprotateframelocaly(&framecamera, 0.1); break; case GLUT_KEY_RIGHT: glprotateframelocaly(&framecamera, -0.1); break; case GLUT_KEY_UP: glpmoveframeforward(&framecamera, 0.1f); break; case GLUT_KEY_DOWN: glpmoveframeforward(&framecamera, -0.1f); break; } //odswiezenie okna glutpostredisplay (); }
14 Opis funkcji glpushmatrix Zapisuje aktualną macierz na stos macierzy. Najczęściej wykorzystywana jest do zapisywania aktualnej macierzy przekształceń. void glpushmatrix (void); *********************************************************************************** glpopmatrix Zdejmuje aktualną macierz ze stosu macierzy void glpopmatrix (void); *********************************************************************************** glpinitframe parametry Inicjacja kamery na scenie void glpinitframe (GLPFrame *pframe); *pframe układ odniesienia kamery
15 Opis funkcji glpapplycameratransform Dodanie kamery do sceny void glpapplycameratransform (GLPFrame *Camera); parametry *pcamera układ odniesienia kamery *********************************************************************************** glprotateframelocalx Funkcja dokonująca obrotu kamery wokół osi x void glprotateframelocalx (GLPFrame *pframe, GLfloat fangle); parametry *pframe układ odniesienia kamery fangle kąt obrotu *********************************************************************************** glprotateframelocaly Funkcja dokonująca obrotu kamery wokół osi y void glprotateframelocaly (GLPFrame *pframe, GLfloat fangle); parametry *pframe układ odniesienia kamery fangle kąt obrotu
16 Opis funkcji glprotateframelocalz Funkcja dokonująca obrotu kamery wokół osi z void glprotateframelocalz (GLPFrame *pframe, GLfloat fangle); parametry *pframe układ odniesienia kamery fangle kąt obrotu *********************************************************************************** glpmoveframeforward Funkcja realizująca ruch kamery w pozycji przód tył void glpmoveframeforward (GLPFrame *pframe, GLfloat fstep); parametry *pframe układ odniesienia kamery fstep wartość kroku
17 Opis funkcji glpmoveframeup Funkcja realizująca ruch kamery w pozycji góra dół void glpmoveframeup (GLPFrame *pframe, GLfloat fstep); parametry *pframe układ odniesienia kamery fstep wartość kroku *********************************************************************************** glpmoveframeright Funkcja realizująca ruch kamery w pozycji lewo prawo void glpmoveframeright (GLPFrame *pframe, GLfloat fstep); parametry *pframe układ odniesienia kamery fstep wartość kroku
18 Opis funkcji glptranslateframelocal Funkcja realizująca przesunięcie kamery do określonego miejsca void glptranslateframelocal (GLPFrame *pframe, GLfloat x, GLfloat y, GLfloat z); parametry *pframe układ odniesienia kamery x, y, z współrzędne nowej pozycji kamery
19 Literatura 1. Richard S. Wright jr, Michael Sweet: OpenGL Księga eksperta Wydanie III, Helion Pomoce dydaktyczne i instrukcje, 3. Jackie Neider, Tom Davis, Mason Woo: OpenGL Programming Guide The RedBook 4. Kevin Hawkins, Dave Astle: OpenGL. Programowanie gier, Helion The official OpenGL web page,
Mieszanie kolorów. Dorota Smorawa
Mieszanie kolorów Dorota Smorawa Tworzenie efektu przezroczystości Biblioteka OpenGL umożliwia nam tworzenie bardzo ciekawych efektów związanych z przezroczystością i odbiciem. Aby zrealizować efekt przezroczystości
Bardziej szczegółowoRzutowanie DOROTA SMORAWA
Rzutowanie DOROTA SMORAWA Rzutowanie Rzutowanie jest operacja polegająca na tym, aby odpowiednie piksele na płaskim ekranie były wyświetlane w taki sposób, by sprawiać wrażenie trójwymiarowej głębi (przestrzeni
Bardziej szczegółowoŚwiatła i rodzaje świateł. Dorota Smorawa
Światła i rodzaje świateł Dorota Smorawa Rodzaje świateł Biblioteka OpenGL posiada trzy podstawowe rodzaje świateł: światło otoczenia, światło rozproszone oraz światło odbite. Dodając oświetlenie na scenie
Bardziej szczegółowoMateriały. Dorota Smorawa
Materiały Dorota Smorawa Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja:
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU GRAFICZNE MODELOWANIE
Bardziej szczegółowoJanusz Ganczarski. OpenGL Pierwszy program
Janusz Ganczarski OpenGL Pierwszy program Spis treści Spis treści..................................... 1 1. Pierwszy program.............................. 1 1.1. Rysowanie sceny 3D...........................
Bardziej szczegółowo1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych
Instrukcja laboratoryjna 9 Grafika komputerowa 3D Temat: Manipulowanie przestrzenią Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Układ
Bardziej szczegółowoElementarne obiekty geometryczne, bufory. Dorota Smorawa
Elementarne obiekty geometryczne, bufory Dorota Smorawa Elementarne obiekty Tworząc scenę 3D, od najprostszej, po najbardziej skomplikowaną, używamy obiektów złożonych, przede wszystkim podstawowych, elementarnych
Bardziej szczegółowoWprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa
Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL Dorota Smorawa Pierwszy program Pierwszy program będzie składał się z trzech etapów: Funkcji rysującej scenę 3D, Inicjacji okna renderingu,
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:
Bardziej szczegółowoPodstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Bardziej szczegółowoTemat: Transformacje 3D
Instrukcja laboratoryjna 11 Grafika komputerowa 3D Temat: Transformacje 3D Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Bardzo często programując
Bardziej szczegółowoJanusz Ganczarski. OpenGL Definiowanie sceny 3D
Janusz Ganczarski OpenGL Definiowanie sceny 3D Spis treści Spis treści..................................... 1 1. Definiowanie sceny 3D........................... 1 1.1. Obszar renderingu............................
Bardziej szczegółowoGrafika 3D OpenGL część II
#include #include #include float kat=0.0f; void renderujscene(void) { glclearcolor(1.0f,1.0f,1.0f,1.0f); glclear(gl_color_buffer_bit); glpushmatrix(); glrotatef(kat,0,0,1);
Bardziej szczegółowoGRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok OpenGL Open Graphics Library Jest to API pozwalające na renderowanie grafiki w czasie rzeczywistym,
Bardziej szczegółowoSymulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007
Symulacja samochodu z kamerą stereowizyjną Krzysztof Sykuła 15 czerwca 2007 1 1 Opis wykonanego projektu Symulacja samochodu z kamerą stereowizyjną była pretekstem do napisania Engine u 3D, wykorzystującego
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 5
Języki formalne i automaty Ćwiczenia 5 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 L-systemy... 2 Grafika żółwia... 2 Bibliografia... 5 Zadania... 6 Zadania na 3.0... 6 Zadania
Bardziej szczegółowoGrafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki
Grafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki Strona 1 z 9 C E L Ć W I C Z E N I A Celem ćwiczenia jest zapoznanie się z podstawowymi operacjami
Bardziej szczegółowoLaboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.
Laboratorium 1 Część I Podstawy biblioteki graficznej OpenGL. I. Konfiguracja środowiska 1. Ściągamy bibliotekę freeglut i rozpakujemy do głównego folderu dysku systemowego np. C:\freeglut 2. Uruchamiamy
Bardziej szczegółowoWIZUALIZACJA I STEROWANIE ROBOTEM
Maciej Wochal, Opiekun koła: Dr inż. Dawid Cekus Politechnika Częstochowska, Wydział Inżynierii Mechanicznej i Informatyki, Instytut Mechaniki i Podstaw Konstrukcji Maszyn, Koło Naukowe Komputerowego Projektowania
Bardziej szczegółowoGrafika Komputerowa, Informatyka, I Rok
SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Wstęp do programowania grafiki 3D z użyciem OpenGL. Transformacje geometryczne. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D
Bardziej szczegółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Bardziej szczegółowo6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/7 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Materiały i oświetlenie 6 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie Specyfikacja biblioteki OpenGL rozróżnia trzy
Bardziej szczegółowoTekstury. Dorota Smorawa
Tekstury Dorota Smorawa Definiowanie obiektów tekstur Dodawanie tekstur należy rozpocząć od zdefiniowania nazw tekstur ładowanych do bufora. Dla ułatwienia pracy z teksturami możemy przygotować obiekty
Bardziej szczegółowoZadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym
Zadanie 1. Ściana Zadanie W pliku walls.cpp znajduje się funkcja void draw_back_wall(). Należy uzupełnić ją, ustawiając odpowiednio parametry teksturowania tak, aby na ścianę, która w pierwotnej wersji
Bardziej szczegółowoWykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. WjęzykuC: pliki
Bardziej szczegółowoOPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE
OPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE SPIS TREŚCI 1. Przekształcenia geometryczne... 3 1.1. Obrót... 3 1.2. Skalowanie... 3 1.3. Przesunięcie... 3 1.4. Mnożenie macierzy... 4 1.5. Ładowanie macierzy... 4
Bardziej szczegółowoGry Komputerowe - laboratorium 2. Kamera FPP / TPP. mgr inż. Michał Chwesiuk 1/11. Szczecin, r
Gry Komputerowe - laboratorium 2 FPP / TPP mgr inż. Michał Chwesiuk 1/11 a model 2/11 Stwórz nową klasę Player a model Do stworzonej klasy Player w pliku player.h dodaj trzy pola (trzeba dodać #include
Bardziej szczegółowoRysunek 1: Okno timeline wykorzystywane do tworzenia animacji.
Ćwiczenie 5 - Tworzenie animacji Podczas tworzenia prostej animacji wykorzystywać będziemy okno Timeline domyślnie ustawione na dole okna Blendera (Rys. 1). Proces tworzenia animacji polega na stworzeniu
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoWykład 4. Rendering (1) Informacje podstawowe
Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie
Bardziej szczegółowoTworzenie gier na urządzenia mobilne
Katedra Inżynierii Wiedzy Ćwiczenia 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Warunki zaliczenia Kolokwium z części
Bardziej szczegółowoSłowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury
Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne
Bardziej szczegółowoDokąd on zmierza? Przemieszczenie i prędkość jako wektory
A: 1 OK Muszę to powtórzyć... Potrzebuję pomocy Dokąd on zmierza? Przemieszczenie i prędkość jako wektory Łódź żegluje po morzu... Płynie z szybkością 10 węzłów (węzeł to 1 mila morska na godzinę czyli
Bardziej szczegółowo0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do
0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy na specjalności: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE
Bardziej szczegółowoBLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły
BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły Po uruchomieniu programu Blender zawsze ukaże się nam oto taki widok: Jak
Bardziej szczegółowo8.2 Drukowanie arkusza kalkulacyjnego
przede wszystkim zastanów się, co chcesz pokazać na wykresie (te same dane można pokazać na różne sposoby, uwypuklając różne ich aspekty) zaznacz zakres danych jeszcze przed wywołaniem kreatora wykonaj
Bardziej szczegółowoBartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.
Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia http://bazyluk.net/dydaktyka Grafika Komputerowa i Wizualizacja, Informatyka S1, II Rok O MNIE mgr inż. Pokój 322/WI2 lub 316/WI2 bbazyluk@wi.zut.edu.pl
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoWykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. Funkcje OpenGL
Bardziej szczegółowoOPISY PRZESTRZENNE I PRZEKSZTAŁCENIA
OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA Wprowadzenie W robotyce przez pojęcie manipulacji rozumiemy przemieszczanie w przestrzeni przedmiotów i narzędzi za pomocą specjalnego mechanizmu. W związku z tym pojawia
Bardziej szczegółowoIRONCAD. TriBall IRONCAD Narzędzie pozycjonujące
IRONCAD IRONCAD 2016 TriBall o Narzędzie pozycjonujące Spis treści 1. Narzędzie TriBall... 2 2. Aktywacja narzędzia TriBall... 2 3. Specyfika narzędzia TriBall... 4 3.1 Kula centralna... 4 3.2 Kule wewnętrzne...
Bardziej szczegółowoProgram V-SIM tworzenie plików video z przebiegu symulacji
Program V-SIM tworzenie plików video z przebiegu symulacji 1. Wprowadzenie Coraz częściej zdarza się, że zleceniodawca opinii prosi o dołączenie do opracowania pliku/ów Video z zarejestrowanym przebiegiem
Bardziej szczegółowoProjektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
Bardziej szczegółowoZajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
Bardziej szczegółowo54. Układy współrzędnych
54 54. Układy współrzędnych Współrzędne punktów i dostępne układy współrzędnych na płaszczyźnie (2D) omówiono w rozdziale 8. Współrzędne 2D. W tym rozdziale podane zostaną informacje dodatkowe konieczne
Bardziej szczegółowoDARMOWA PRZEGLĄDARKA MODELI IFC
www.bimvision.eu DARMOWA PRZEGLĄDARKA MODELI IFC BIM VISION. OPIS FUNKCJONALNOŚCI PROGRAMU. CZĘŚĆ I. Spis treści OKNO GŁÓWNE... 1 NAWIGACJA W PROGRAMIE... 3 EKRAN DOTYKOWY... 5 MENU... 6 ZAKŁADKA WIDOK....
Bardziej szczegółowoJAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI
JAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI Gdy wywołujesz daną funkcję, program przechodzi do tej funkcji, przekazywane są parametry i następuje wykonanie ciała funkcji. Gdy funkcja zakończy działanie, zwracana
Bardziej szczegółowoBaltie - programowanie
Baltie - programowanie Chcemy wybudować na scenie domek, ale nie chcemy sami umieszczać przedmiotów jak w trybie Budowanie, ani wydawać poleceń czarodziejowi jak w trybie Czarowanie. Jak utworzyć własny
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoSzablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoStrona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Bardziej szczegółowoGrafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 14 Blender, podstawy animacji Wstęp Zagadnienie tworzenia animacji 3D w Blenderze jest bardzo szerokie i wiąże się z wieloma grupami rozwiązao.
Bardziej szczegółowoGrafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30
Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego
Bardziej szczegółowoNastępnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej
Zadanie 1 Wykorzystanie opcji Blok, Podziel oraz Zmierz Funkcja Blok umożliwia zdefiniowanie dowolnego złożonego elementu rysunkowego jako nowy blok a następnie wykorzystanie go wielokrotnie w tworzonym
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoĆwiczenie 14 Dmuchawce
Dmuchawce Celem ćwiczenia jest wykorzystanie właściwości programu Flash do generowania animacji o charakterze losowym. Prezentowany efekt można wykorzystać do wielu różnych celów np. spadające liście,
Bardziej szczegółowoDodatkowo klasa powinna mieć destruktor zwalniający pamięć.
Zadanie 1. Utworzyć klasę reprezentującą liczby wymierne. Obiekty klasy powinny przechowywać licznik i mianownik rozłożone na czynniki pierwsze. Klasa powinna mieć zdefiniowane operatory czterech podstawowych
Bardziej szczegółowoDodawanie grafiki i obiektów
Dodawanie grafiki i obiektów Word nie jest edytorem obiektów graficznych, ale oferuje kilka opcji, dzięki którym można dokonywać niewielkich zmian w rysunku. W Wordzie możesz zmieniać rozmiar obiektu graficznego,
Bardziej szczegółowoBartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.
Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok, 2018 r. O MNIE dr inż. bbazyluk@wi.zut.edu.pl http://bazyluk.net/dydaktyka
Bardziej szczegółowoMisja#3. Robimy film animowany.
Po dzisiejszej lekcji będziesz: tworzyć programy animujące obiekty na ekranie komputera określać położenie i orientację obiektu w kartezjańskim układzie współrzędnych Zauważ że... Ludzkie oko charakteryzuje
Bardziej szczegółowo1 Wskaźniki. 1.1 Główne zastosowania wskaźników
1 Wskaźniki Wskaźnik (ang. pointer) jest obiektem (zmienną) przechowującym adres pamięci. Definiowanie wskaźników: typ *nazwa wskaznika; np.: int *wsk na x;, double *xxx;, char *znak;. Aby można było pracować
Bardziej szczegółowoLekcja 5 - PROGRAMOWANIE NOWICJUSZ
Lekcja 5 - PROGRAMOWANIE NOWICJUSZ 1 Programowanie i program według Baltiego Najpierw sprawdźmy jak program Baltie definiuje pojęcia programowania i programu: Programowanie jest najwyższym trybem Baltiego.
Bardziej szczegółowoMS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30
MS Word 2010 Długi dokument Praca z długim dokumentem Kinga Sorkowska 2011-12-30 Dodawanie strony tytułowej 1 W programie Microsoft Word udostępniono wygodną galerię wstępnie zdefiniowanych stron tytułowych.
Bardziej szczegółowoSpadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51
Spadające jabłuszka Materiały opracowane przez Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie w ramach programu Warszawa Programuje licencja CC-BY-SA Uznanie autorstwa Na tych samych
Bardziej szczegółowoZad. 6: Sterowanie robotem mobilnym
Zad. 6: Sterowanie robotem mobilnym 1 Cel ćwiczenia Utrwalenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas, czynności oraz przypadków użycia. Wykorzystanie dziedziczenia
Bardziej szczegółowoBartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.
Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka S1, II Rok, 2018 r. O MNIE dr inż. bbazyluk@wi.zut.edu.pl http://bazyluk.net/dydaktyka
Bardziej szczegółowoPodstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Bardziej szczegółowoPrzekształcenia geometryczne. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej
Przekształcenia geometryczne Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza w Krakowie Przekształcenia elementarne w przestrzeni D Punkty p w E na płaszczyźnie
Bardziej szczegółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Bardziej szczegółowoLekcja : Tablice + pętle
Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoKrzysztof Sendor Słowa kluczowe Meble kuchenne w Intericad. Otwieramy moduł kuchenny korzystając z menu: Moduł kuchenny/pokaż Bibliotekę
Program Intericad T5 Wersja polska Przygotował: Krzysztof Sendor Słowa kluczowe Meble kuchenne w Intericad Tworzenie zabudowy kuchennej w Intericad T5 Otwieramy moduł kuchenny korzystając z menu: Moduł
Bardziej szczegółowoProsty program- cpp. #include <GL/glut.h>
Wizualizacje 3D Prosty program- cpp #include #include #include int main(int argc, char** argv) { glutinit(&argc, argv); glutinitdisplaymode( GLUT_DOUBLE GLUT_RGBA ); glutinitwindowsize(400,
Bardziej szczegółowoGrafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 6 Processing c.d. Wstęp Laboratorium 6 poszerza zagadnienie generowania i przetwarzania obrazów z wykorzystaniem języka Processing 2, dedykowanego
Bardziej szczegółowoBaltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup
Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie
Bardziej szczegółowoĆwiczenie 6 Animacja trójwymiarowa
Animacja trójwymiarowa Wstęp Jedną z nowości Flasha CS4 i wyższych wersji jest tworzenie animacji 3D. Są do tego przeznaczone narzędzia Obrót 3D (W) i Translacja 3D (G). Narzędzia te działają na klipach
Bardziej szczegółowoWykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty
Bardziej szczegółowoProgramowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h
Programowanie II Lista 3 Modyfikatory dostępu plik TKLientBanku.h plik z funkcją main Przyjaźń Dziedziczenie Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to
Bardziej szczegółowoWprowadzenie do rysowania w 3D. Praca w środowisku 3D
Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać
Bardziej szczegółowoCorelDraw - podstawowe operacje na obiektach graficznych
CorelDraw - podstawowe operacje na obiektach graficznych Przesuwanie obiektu Wymaż obszar roboczy programu CorelDraw (klawisze Ctrl+A i Delete). U góry kartki narysuj dowolnego bazgrołka po czym naciśnij
Bardziej szczegółowoZajęcia z grafiki komputerowej Pov Ray część 2
Zajęcia z grafiki komputerowej Pov Ray część 2 Stwórzmy na początek pustą scenę. #include "colors.inc" camera { location look_at 0 angle 36 White plane { , -1.5 pigment
Bardziej szczegółowoStruktury Struktura polami struct struct struct struct
Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli
Bardziej szczegółowo6.4. Efekty specjalne
6.4. Efekty specjalne Ile wart byłby porządny film bez efektów specjalnych. Przecież to właśnie one nadają charakter dla filmu i przykuwają uwagę widza. Dlaczego nie wykorzystać by tego w prezentacjach?
Bardziej szczegółowoLaboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny
Laboratorium grafiki komputerowej i animacji Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny Przygotowanie do ćwiczenia: 1. Zapoznać się ze zdefiniowanymi w OpenGL modelami światła i właściwości materiałów.
Bardziej szczegółowoPlan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
Bardziej szczegółowoInstrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji
Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoNotacja Denavita-Hartenberga
Notacja DenavitaHartenberga Materiały do ćwiczeń z Podstaw Robotyki Artur Gmerek Umiejętność rozwiązywania prostego zagadnienia kinematycznego jest najbardziej bazową umiejętność zakresu Robotyki. Wyznaczyć
Bardziej szczegółowoTworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Bardziej szczegółowo/*W tym miejscu funkcja system wywołuje systemową komendę PAUSE tj.czeka tak długo, aż zostanie wciśnięty dowolny znak z
Języki i metodyka Programowania Zajęcia 1. 1. Spróbujmy uruchomić pierwszy program. Otwórzmy okno dosowe (polecenie cmd) i po przejściu do katalogu projektu uruchamiamy z linii poleceń nasz program wielokrotnie.
Bardziej szczegółowoProgramowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
Bardziej szczegółowoObraz jako funkcja Przekształcenia geometryczne
Cyfrowe przetwarzanie obrazów I Obraz jako funkcja Przekształcenia geometryczne dr. inż Robert Kazała Definicja obrazu Obraz dwuwymiarowa funkcja intensywności światła f(x,y); wartość f w przestrzennych
Bardziej szczegółowo1 Tworzenie brył obrotowych
1 Tworzenie brył obrotowych Do tworzenia brył obrotowych w programie Blender służą dwa narzędzia: Spin i SpinDup. Idea tworzenia brył obrotowych jest prosta i polega na narysowania połowy przekroju poprzecznego
Bardziej szczegółowoZad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb
Zad. 3: Rotacje 2D 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich struktur
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowo1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3
DODAJEMY TREŚĆ DO STRONY 1. Dockbar, CMS + wyszukiwarka aplikacji... 2 2. Dodawanie portletów... 3 Widok zawartości stron... 3 Omówienie zawartości portletu (usunięcie ramki itd.)... 4 3. Ikonki wybierz
Bardziej szczegółowo3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas
3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas oddziaływanie między ciałami, ani też rola, jaką to
Bardziej szczegółowo