Laboratorium grafiki komputerowej i animacji. Ćwiczenie IV - Biblioteka OpenGL - transformacje przestrzenne obiektów

Podobne dokumenty
Laboratorium grafiki komputerowej i animacji. Ćwiczenie III - Biblioteka OpenGL - wprowadzenie, obiekty trójwymiarowe: punkty, linie, wielokąty

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

Strukturalne elementy symetrii. Krystalograficzne grupy przestrzenne.

Elementy symetrii makroskopowej w ujęciu macierzowym.

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie IV. Biblioteka OpenGL - transformacje przestrzenne obiektów

Mechanika Robotów. Wojciech Lisowski. 2 Opis położenia i orientacji efektora Model geometryczny zadanie proste

1. REDUKCJA DOWOLNYCH UKŁADÓW SIŁ. Redukcja płaskiego układu sił

Strukturalne elementy symetrii. Krystalograficzne grupy przestrzenne.

ZŁOŻONE RUCHY OSI OBROTOWYCH STEROWANYCH NUMERYCZNIE

Zginanie ukośne LABORATORIUM WYTRZYMAŁOŚCI MATERIAŁÓW. Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki

GRUPY SYMETRII Symetria kryształu

cz.2 Dr inż. Zbigniew Szklarski Katedra Elektroniki, paw. C-1, pok.321

Optymalizacja (w matematyce) termin optymalizacja odnosi się do problemu znalezienia ekstremum (minimum lub maksimum) zadanej funkcji celu.

Zadanie polega na zbudowaniu i wyświetleniu przykładowej animowanej sceny przedstawiającej robota spawalniczego typu PUMA.

Temat: Transformacje 3D

DryLin T System prowadnic liniowych

ANALIZA KONSTRUKCJI POWŁOKOWEJ. CIENKOŚCIENNY ZBIORNIK CIŚNIENIOWY

napór cieczy - wypadkowy ( hydrostatyczny )

Laboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.

2 Przygotował: mgr inż. Maciej Lasota

1. Podstawy rachunku wektorowego

Ruch kulisty bryły. Kąty Eulera. Precesja regularna

Zad. 6: Sterowanie robotem mobilnym

BADANIE CYFROWYCH UKŁADÓW ELEKTRONICZNYCH TTL strona 1/7

Przestrzeń liniowa R n.

POTENCJALNE POLE SIŁ. ,F z 2 V. x = x y, F y. , F x z F z. y F y

MECHANIKA BUDOWLI 2 PRACA SIŁ WEWNĘTRZNYCH W PRĘTACH

SPEKTROSKOPIA NMR PODEJŚCIE PRAKTYCZNE DR INŻ. TOMASZ LASKOWSKI CZĘŚĆ: I. Animacje na slajdach przygotował mgr inż.

Rozwiązanie równań stanu dla układów liniowych - pola wektorowe

Document: Exercise-03-manual /12/ :54--- page 1 of 8 INSTRUKCJA DO ĆWICZENIA NR 3. Optymalizacja wielowarstwowych płyt laminowanych

Przekształcenia geometryczne. Dorota Smorawa

1. Podstawy matematyczne programowania grafiki 3D

EPR. W -1/2 =-1/2 gµ B B

1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych

I. Rachunek wektorowy i jego zastosowanie w fizyce.

Notacja Denavita-Hartenberga

Środek ciężkości bryły jednorodnej

ORGANIZACJA I ZARZĄDZANIE

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W KONINIE. WYDZIAŁ Kultury Fizycznej i Ochrony Zdrowia


PRÓBNA MATURA. ZADANIE 1 (1 PKT) Wskaż liczbę, której 4% jest równe 8. A) 200 B) 100 C) 3,2 D) 32

Wyznaczanie środka ścinania w prętach o przekrojach niesymetrycznych

LABORATORIUM MECHANIKI EKSPERYMENTALNEJ. Instrukcja do ćwiczenia

Grafika 3D program POV-Ray

Wyznaczanie ruchliwości i koncentracji nośników prądu w półprzewodnikach metodą efektu Halla

Podstawy wytrzymałości materiałów

KONWENCJA ZNAKOWANIA MOMENTÓW I WZÓR NA NAPRĘŻENIA

Zajęcia z grafiki komputerowej Pov Ray część 2

Zad. 5: Sterowanie robotem mobilnym

Przykład 6.3. Uogólnione prawo Hooke a

Układy współrzędnych GUW, LUW Polecenie LUW

Postać Jordana macierzy

RZUTOWANIE. rzutnia (ekran) obserwator

Języki interpretowane Interpreted languages PRZEWODNIK PO PRZEDMIOCIE

OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA

MODEL MANIPULATORA O STRUKTURZE SZEREGOWEJ W PROGRAMACH CATIA I MATLAB MODEL OF SERIAL MANIPULATOR IN CATIA AND MATLAB

Rozdział 9. Baza Jordana

WIZUALIZACJA I STEROWANIE ROBOTEM

Zad.1 Zad. Wyznaczyć rozkład sił wewnętrznych N, T, M, korzystając z komputerowej wersji metody przemieszczeń. schemat konstrukcji:

PRZEKSZTAŁCENIA W PRZESTRZENI 3D czyli matematyczny zawrót głowy. Część2 :Rodzaje układów współrzędnych. Obroty i Skalowanie

pionowe od kół suwnic, zgodnie z warunków równowagi statecznej (rys. 6.4) dla

Opis efektów kształcenia dla modułu zajęć

Rok akademicki: 2017/2018 Kod: JFM s Punkty ECTS: 7. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

ĆWICZENIE 5 BADANIE ZASILACZY UPS

Adam Bodnar: Wytrzymałość Materiałów. Ukośne zginanie 13. UKOŚNE ZGINANIE

Grafika inżynierska geometria wykreślna. 5a. Obroty i kłady. Rozwinięcie wielościanu.

Zegary. Zegary (timers) umożliwiają cykliczne w danych odstępach czasu wykonać określone operacje.

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

Animowana grafika 3D. Opracowanie: J. Kęsik.

MES W ANALIZIE SPRĘŻYSTEJ UKŁADÓW PRĘTOWYCH

6 Przygotował: mgr inż. Maciej Lasota

PRZEWODNIK PO PRZEDMIOCIE

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:

CYFROWA SYNTEZA FOTOREALISTYCZNYCH OBRAZÓW W ŚRODOWISKU 3D

PRÓBNY EGZAMIN MATURALNY

KARTA KURSU. Grafika komputerowa

Automatyczna kompensacja mocy biernej z systemem monitorowania kopalnianej sieci 6 kv

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

1 Tworzenie brył obrotowych

SYNTHESIS OF MOTION FOR A FOUR-LEGGED ROBOT

Rozszerzony konspekt preskryptu do przedmiotu Podstawy Robotyki

KRYTERIA OCENIANIA ODPOWIEDZI Próbna Matura z OPERONEM. Matematyka Poziom rozszerzony

OpenGL transformacje przestrzenne

P K. Położenie punktu na powierzchni kuli określamy w tym układzie poprzez podanie dwóch kątów (, ).

Metody dokładne w zastosowaniu do rozwiązywania łańcuchów Markowa

Podstawy wytrzymałości materiałów

Powierzchnie stopnia drugiego

Bartosz Bazyluk DEFINIOWANIE GEOMETRII Sposoby opisu geometrii brył w OpenGL. Grafika Komputerowa, Informatyka, I Rok

BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

Kalibracja robotów przemysłowych

Symulacje komputerowe

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

Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

Studia Podyplomowe Grafika Komputerowa i Techniki Multimedialne, 2017, semestr II Modelowanie 3D - Podstawy druku 3D. Ćwiczenie nr 4.

σ x σ y σ z σ z, Adam Bodnar: Wytrzymałość Materiałów. Równania fizyczne.

Projektowanie systemów zrobotyzowanych

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

x od położenia równowagi

Transkrypt:

Laboratorium grafiki komputerowej i animacji Ćwicenie IV - Biblioteka OpenGL - transformacje prestrenne obiektów Prgotowanie do ćwicenia: 1. Zaponać się transformacjami prestrennmi (obrót, presunięcie, skalowanie), 2. Zaponać się opisem jednorodnm transformacji prestrennch, 3. Zaponać się estawem komend OpenGL umożliwiającm dokonwanie transformacji prestrennch obiektów na scenie wra podstawowmi asadami posługiwania się tmi komendami. Prebieg ćwicenia: 1. Założenia: a. Celem prac na ajęciach laboratorjnch jest wkonanie ruchomego modelu siatki manipulatora Puma. b. Wnikiem prac na disiejsch ajęciach ma bć program bliżon w diałaniu do programu puma_siatka.ee dostarconego do materiałów laboratorjnch. c. Realiacja ćwicenia polega na uupełnieniu kodu programu gl_template modfikowanego na ostatnich ajęciach. d. W realiacji prac worować się należ na rowiąaniach prjętch w programie robot1 również dołąconm do materiałów laboratorjnch. 2. Prebieg ćwicenia: a. Załadować do programu VS projekt Gl_Template modfikowan na poprednich ajęciach i awierając opracowane siatki: seścianu, walca ora ramienia robota. b. Ustalić następując trb rsowania wielokątów: prednie i tlne ścian rsowane jako siatka (należ w funkcji RenderScene() uaktwnić wwołanie funkcji glpolgonmode(gl_front_and_back,gl_line);) c. Utworć funkcję o prototpie: void robot(double d1, double d2, double d3); Model robota będie posiadał 3 stopnie swobod: obród wokół podstaw, obrót pierwsego ramienia i obrót drugiego ramienia, stąd do funkcji ostaną prekaane 3 parametr określające jego bieżącą konfigurację. Funkcja będie korstała funkcji rsującch walec i ramię robota. d. Powołać do żcia 3 mienne globalne tpu double do prechowwania konfiguracji robota: double rot1, rot2, rot3; e. Wwołać funkcję robot wewnątr funkcji RenderScene() parametrami wwołania rot1, rot2, rot3: robot(rot1, rot2, rot3); f. Wewnątr funkcji robot() pretransformować baow układ współrędnch do miejsca, w którm będie rsowana podstawa robota. Zmianę położenia układu

współrędnch pokaano na rsunku 1 Rs. 1 Ocekiwana miana orientacji i położenia układu współrędnch. Układ baow obrócono o -90 stopni wokół osi, a następnie presunięto o wektor [0,0,-50]. W bibliotece OpenGL można dokonać takiej transformacji na macier modelowania-transformacji wwołując komend: glrotated(-90,1,0,0); gltranslated(0,0,-50); g. W pretransformowanm układie współrędnch wrsować podstawę robota: walec(30,5); Wnik rsowania pokaano na rsunku 2. Rs. 2. Wrsowanie podstaw robota. h. Presunąć układ współrędnch o wektor [0,0,5] (5-wsokość walca modelującego podstawę robota). Wrsować model walca obraując 1 cęść kolumn robota: gltranslated(0,0,5); walec(10,40); Reultat wkonania nowch komend OpenGL pokaano na rsunku 3.

Rs. 3. Wrsowanie 1 cęści kolumn robota. i. Presunąć układ współrędnch o wektor [0,0,40] (40-wsokość walca modelującego podstawę robota), a następnie obrócić układ współrędnch o wartość parametru d1 wokół osi. Należ pamiętać, że wartość parametru d1 ależ od wartości miennej globalnej rot1. Następnie wrsować kolejn walec stanowiąc drugą cęść kolumn robota: gltranslated(0,0,40); glrotated(d1,0,0,1); walec(10,40); Reultat dotchcasowego ciągu komend pokaano na rsunku 4. Rs. 4. Wrsowanie 2 cęści kolumn robota. j. Obsługę komunikatu WM_KEYDOWN w funkcji WndProc() uupełnić (pred wwołaniem funkcji InvalidateRect(hWnd,NULL,FALSE);) o następując kod: if(wparam == '1') rot1 -= 5.0f; if(wparam == '2') rot1 += 5.0f; Od tej chwili prciśnięcie klawisa 1 powoduje mniejsenie rot1, kolei prciśnięcie klawisa 2 - więksenie wartości miennej rot1, a następnie wmusenie wrsowania scen. W konsekwencji druga cęść kolumn robota obraca się pod wpłwem prciskania klawis 1 i 2.

k. Uupełnić obsługę komunikatu WM_KEYDOWN o możliwość modfikacji stanu miennej rot2 po prciśnięciu klawis 3, 4 ora modfikacji stanu miennej rot3 po prciśnięciu klawis 5, 6. l. Presunąć układ współrędnch o wektor [0,0,40], obrócić układ współrędnch o kąt 90 stopni wokół osi i presunąć układ współrędnch o wektor [0,0,-20]: gltranslated(0,0,40); glrotated(90,0,1,0); gltranslated(0,0,-20); m. Wrsować kolejn walec w nowej pocji lokalnego układu współrędnch: walec(10,40); Reultat dotchcasowego skrptu pokaano na rsunku 5. Rs. 5. Uupełnienie kolumn robota o element umożliwiając prłącenie ramienia. n. Presunąć układ współrędnch o wektor [0,0,40], obrócić układ współrędnch o (+90º+d2) wokół osi, wrsować ramię robota: gltranslated(0,0,+40); glrotated(90+d2,0,0,1); ramie(15,10,5,30); Dotchcasow reultat wkonania skrptu pokaano na rs. 6. Rs. 6. Uupełnienie modelu robota o pierwse ramię.

o. Presunąć układ współrędnch o wektor [30,0,-5], obrócić układ współrędnch o kąt d3 wokół osi, wrsować ramię robota: gltranslated(30,0,-5); glrotated(d3,0,0,1); ramie(15,10,5,30); Dotchcasow reultat wkonania skrptu pokaano na rs. 7. Rs. 7. Kompletna siatka robota. p. Skrpt rsując model robota ropocąć od polecenia glpushmatri() i akońcć poleceniem glpopmatri(): glpushmatri(); // skrpt rsując robota glpopmatri(); Takie astosowanie funkcji glpushmatri() i glpopmatri() powoduje, że wsstkie transformacje prestrenne astosowane w skrpcie tworącm model robota nie wpłwają na rsowanie innch elementów scen. q. Obsługę komunikatu WM_CREATE w funkcji WndProc() uupełnić o wwołanie funkcji: SetTimer(hWnd,101,200,NULL); Spowoduje to ainstalowanie w programie budika, któr będie powiąan oknem programu, będie miał identfikator 101 i będie wsłał specjaln komunikat WM_TIMER do procedur okna co 200 [ms]. r. Obsługę komunikatu WM_DESTROY w funkcji WndProc() uupełnić o wwołanie funkcji: KillTimer(hWnd,101); Funkcja oddaje sstemowi operacjnemu budik tuż pred akońceniem diałania programu. s. Powołać globalną całkowitolicbową mienną licnik.

t. Wprowadić do funkcji WndProc() mechanim obsługi nowego komunikatu WM_TIMER: case WM_TIMER: if(wparam==101) { licnik++; if(licnik<15) rot2+=15.0; if(licnik>15 && licnik < 30) rot2-=15.0; if(licnik>30) {licnik=0;} InvalidateRect(hWnd,NULL,FALSE); } break; Tak modfikowan program będie stosował budik do automatcnego generowania kolejnch klatek animacji. u. Zaproponować realiację funkcji dwa_robot(), która będie modelowała gniado robotów składające się 2 egemplar robota opracowanego wceśniej. Uwaga: Należ umiejętnie posłużć się wwołaniem komend glpushmatri() i glpopmatri() w celu odiolowania transformacji prestrennch. v. Opracować własn scenarius porusania się robotów w gnieźdie.