Podstawy Processingu. Diana Domańska. Uniwersytet Śląski

Podobne dokumenty
Podstawy Processingu. Diana Domańska. Uniwersytet Śląski

Grafika Komputerowa Materiały Laboratoryjne

Processing. Podstawy Processingu

Grafika Komputerowa Materiały Laboratoryjne

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

Ćwiczenie P-2. Processing definiowanie i rysowanie obiektów 2D i 3D. Grafika komputerowa. Instrukcja laboratoryjna. opracował: mgr inż.

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Interakcje wizualno-muzyczne. Processing. w programowaniu obrazu. Piotr Welk

Temat: Transformacje 3D

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

składa się z m + 1 uporządkowanych niemalejąco liczb nieujemnych. Pomiędzy p, n i m zachodzi następująca zależność:

2 Przygotował: mgr inż. Maciej Lasota

Obraz jako funkcja Przekształcenia geometryczne

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

GRAFIKA KOMPUTEROWA podstawy matematyczne. dr inż. Hojny Marcin pokój 406, pawilon B5 Tel.

Mobilne Aplikacje Multimedialne

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Podstawy robotyki. Wykład II. Robert Muszyński Janusz Jakubiak Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Zadania nadobowiązkowe KRZYWE STOŻKOWE OKRĄG

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy.

OpenGL : Prymitywy, obsługa klawiatury

Przekształcenia geometryczne. Dorota Smorawa

Przekształcenia liniowe

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

Obrót wokół początku układu współrzędnych o kąt φ można wyrazić w postaci macierzowej następująco

Przekształcenia w obliczeniach zwarciowych. Przekształcenie 0, 1, 2 (Składowe symetryczne)

Laboratorium Przetwarzania Sygnałów

1 Przestrzeń liniowa. α 1 x α k x k = 0

Krystalochemia białek 2016/2017

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

i = [ 0] j = [ 1] k = [ 0]

Laboratorium Cyfrowego Przetwarzania Obrazów

6 Grafika 2D. 6.1 Obiekty 2D

Rysowanie punktów na powierzchni graficznej

Graka komputerowa Wykªad 3 Geometria pªaszczyzny

Andrzej Marciniak GRAFIKA KOMPUTEROWA. Wykłady dla studentów kierunku informatyka Państwowej Wyższej Szkoły Zawodowej w Kaliszu

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

Wykład 14. Elementy algebry macierzy

WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS

Manipulator OOO z systemem wizyjnym

Informatyczne Systemy Sterowania

Przekształcenia geometryczne. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

Endomorfizmy liniowe

Podstawy fotogrametrii i teledetekcji

Grafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki

Zakłócenia w układach elektroenergetycznych LABORATORIUM 3

FUNKCJA KWADRATOWA. Wykresem funkcji kwadratowej jest parabola o wierzchołku w punkcie W = (p, q), gdzie

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Notacja Denavita-Hartenberga

Mechanika Teoretyczna Kinematyka







Opis krzywych w przestrzeni 3D. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej AGH

Przekształcenia liniowe

Baza w jądrze i baza obrazu ( )

Dydaktyka matematyki III-IV etap edukacyjny (wykłady)

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

3. FUNKCJA LINIOWA. gdzie ; ół,.

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Funkcje wielu zmiennych

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

gruparectan.pl 1. Szkic projektu Strona:1

Przekształcenia geometryczne w grafice komputerowej. Marek Badura

Modelowanie krzywych i powierzchni

Diagnostyka obrazowa

Równania prostych i krzywych; współrzędne punktu

4. Rysowanie krzywych

Matematyka stosowana i metody numeryczne

Elementy grafiki komputerowej. Elementy krzywych Béziera

Symetria w fizyce materii

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

Działania na przekształceniach liniowych i macierzach

Oscyloskop (007; ; arduino; processing)

ĆWICZENIE PROJEKTOWE NR 2 Z MECHANIKI BUDOWLI

Programowanie strukturalne i obiektowe. Funkcje

Mathematica - podstawy

Interpolacja krzywymi sklejanymi stopnia drugiego (SPLINE-2)

GRK 2. dr Wojciech Palubicki

Układy równań liniowych

OpenGL przezroczystość

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

Kinematyka płynów - zadania

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 KOMPUTEROWA

ROZWIĄZANIA DO ZADAŃ

Manipulatory i roboty mobilne AR S1 semestr 5

Interpolacja i aproksymacja, pojęcie modelu regresji

Zad. 6: Sterowanie robotem mobilnym

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Drgania układu o wielu stopniach swobody

Transkrypt:

Podstawy Processingu Diana Domańska Uniwersytet Śląski

Krzywe W Processingu dostępne są dwa rodzaje krzywych kubicznych: krzywe Béziera, krzywe Catmulla-Roma.

Krzywe W Processingu dostępne są dwa rodzaje krzywych kubicznych: krzywe Béziera, krzywe Catmulla-Roma. Do rysowania krzywej Béziera służy funkcja: void bezier(int x1, int y1, int cx1, int cy1, int cx2, int cy2, int x2, int y2); gdzie x1, y1, x2, y2 współrzędne punktów kontrolnych, które są interpolowane, cx1, cy1, cx2, cy2 współrzędne punktów kontrolnych kontrolujących kształt krzywej.

Drugim sposobem rysowania krzywej Béziera jest użycie funkcji: void beziervertex(int cx1, int cy1, int cx2, int cy2, int x2, int y2); pomiędzy funkcjami beginshape, endshape (obie funkcje wywołane bez parametrów). Za pomocą tej funkcji jesteśmy w stanie rysować krzywe sklejane. Pierwsze wywołanie funkcji beziervertex musi być poprzedzone wywołaniem funkcji vertex, kolejne wywołania funkcji beziervertex będą brały ostatni punkt z poprzedniego wywołania funkcji.

Dokładność rysowania krzywej Béziera void bezierdetail(int d); gdzie d dokładność (rozdzielczość), dodatnia liczba im większa tym krzywa będzie rysowania dokładniej.

Dokładność rysowania krzywej Béziera void bezierdetail(int d); gdzie d dokładność (rozdzielczość), dodatnia liczba im większa tym krzywa będzie rysowania dokładniej. Obliczenie współrzędnej (x lub y) na krzywej int bezierpoint(int a, int b, int c, int d, float t); gdzie a, b, c, d współrzędne (x lub y) kolejnych punktów kontrolnych, t wartość parametru, dla którego określamy punkt na krzywej, liczba z [0,1].

Obliczanie współrzędnej (x lub y) stycznej do krzywej w danym punkcie int beziertangent(int a, int b, int c, int d, float t); gdzie a, b, c, d współrzędne (x lub y) kolejnych punktów kontrolnych, t wartość parametru, dla którego określamy styczną do krzywej, liczba z [0,1].

1 size(200, 200); 2 nofill(); 3 smooth(); 4 5 bezier(10, 10, 50, 100, 70, 80, 150, 20); 6 7 beginshape(); 8 vertex(20, 180); 9 beziervertex(50, 100, 80, 120, 130, 150); 10 beziervertex(150, 130, 170, 90, 190, 120); 11 endshape();

Krzywą Catmulla-Roma rysujemy za pomocą funkcji: void curve(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); gdzie x1, y1, x2, y2, x3, y3, x4, y4 współrzędne kolejnych punktów kontrolnych.

Krzywą Catmulla-Roma rysujemy za pomocą funkcji: void curve(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); gdzie x1, y1, x2, y2, x3, y3, x4, y4 współrzędne kolejnych punktów kontrolnych. Podobnie jak w przypadku krzywej Béziera istnieje drugi sposób rysowania krzywej Catmulla-Roma. Kolejne punkty kontrolne krzywej definiowane są poprzez wywołanie funkcji: void curvevertex(int x, int y); pomiędzy wywołaniami funkcji beginshape i endshape (wywołane bez parametrów).

Dokładność rysowania krzywej Catmulla-Roma void curvedetail(int d); gdzie d dokładność (rozdzielczość), dodatnia liczba im większa tym krzywa będzie rysowania dokładniej.

Dokładność rysowania krzywej Catmulla-Roma void curvedetail(int d); gdzie d dokładność (rozdzielczość), dodatnia liczba im większa tym krzywa będzie rysowania dokładniej. Obliczenie współrzędnej (x lub y) na krzywej int curvepoint(int a, int b, int c, int d, float t); gdzie a, b, c, d współrzędne (x lub y) kolejnych punktów kontrolnych, t wartość parametru, dla którego określamy punkt na krzywej, liczba z [0,1].

Obliczanie współrzędnej (x lub y) stycznej do krzywej w danym punkcie int curvetangent(int a, int b, int c, int d, float t); gdzie a, b, c, d współrzędne (x lub y) kolejnych punktów kontrolnych, t wartość parametru, dla którego określamy styczną do krzywej, liczba z [0,1].

1 size(200, 200); 2 nofill(); 3 smooth(); 4 5 curve(100, 40, 100, 60, 150, 60, 230, -80); 6 7 beginshape(); 8 curvevertex(20, 180); 9 curvevertex(50, 100); 10 curvevertex(80, 120); 11 curvevertex(110, 150); 12 curvevertex(130, 130); 13 curvevertex(140, 90); 14 curvevertex(170, 120); 15 endshape();

Podstawowe transformacje 2D Translacja void translate(int x, int y); void translate(float x, float y); x, y współrzędne wektora translacji.

Podstawowe transformacje 2D Translacja void translate(int x, int y); void translate(float x, float y); x, y współrzędne wektora translacji. Rotacja wokół początku układu współrzędnych void rotate(float k); k kąt obrotu (w radianach).

Skalowanie void scale(float s); void scale(float sx, float sy); s współczynnik skali w obu kierunkach, sx współczynnik skali w kierunku x, sy współczynnik skali w kierunku y.

Skalowanie void scale(float s); void scale(float sx, float sy); s współczynnik skali w obu kierunkach, sx współczynnik skali w kierunku x, sy współczynnik skali w kierunku y. Ścinanie void shearx(float kx); void sheary(float ky); kx kąt (w radianach) ścięcia wokół osi x, ky kąt (w radianach) ścięcia wokół osi y.

Macierze przekształceń i operacje na ich stosie Wypisanie aktualnej macierzy przekształcenia void printmatrix();

Macierze przekształceń i operacje na ich stosie Wypisanie aktualnej macierzy przekształcenia void printmatrix(); Ustawienie macierzy identyczności (resetowanie macierzy przekształcenia) void resetmatrix();

Macierze przekształceń i operacje na ich stosie Wypisanie aktualnej macierzy przekształcenia void printmatrix(); Ustawienie macierzy identyczności (resetowanie macierzy przekształcenia) void resetmatrix(); Wymnożenie bieżącej macierzy przekształcenia przez podaną macierz void applymatrix(float n00, float n01, float n02, float n10, float n11, float n12); n00-n12 współczynniki macierzy (podawane wierszowo).

Umieszczenie bieżącej macierzy przekształceń na stosie void pushmatrix();

Umieszczenie bieżącej macierzy przekształceń na stosie void pushmatrix(); Zdjęcie macierzy ze szczytu stosu i ustawienie jej jako bieżącej macierzy przekształcenia void popmatrix();

1 size(100, 100); 2 3 fill(255, 0, 0); // czerwony 4 rect(0, 0, 50, 50); 5 6 pushmatrix(); 7 translate(40, 40); 8 fill(0, 255, 0); // zielony 9 rect(0, 0, 50, 50); 10 11 translate(10, 0); 12 fill(255, 255, 0); // zolty 13 rect(0, 0, 20, 20); 14 popmatrix(); 15 16 fill(0, 0, 255); // niebieski 17 rect(0, 0, 20, 20); 18 19 translate(40, 0); 20 fill(255, 0, 255); // rozowy 21 rect(0, 0, 20, 20);