Grafika Komputerowa Materiały Laboratoryjne

Podobne dokumenty
Grafika Komputerowa Materiały Laboratoryjne

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

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

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

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

Rysowanie precyzyjne. Polecenie:

Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Obsługa programu Paint. mgr Katarzyna Paliwoda

Ćwiczenie 2 Warstwy i kształty podstawowe

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Microsoft Small Basic

Obsługa programu Paint materiały szkoleniowe

Prostokąt. AutoCAD pozwala na szybkie rysowanie figur o czterech bokach prostokątów. Do tego celu służy funkcja Prostokąt. Funkcję tą można wywołać:

Pascal - grafika. Uruchomienie trybu graficznego. Moduł graph. Domyślny tryb graficzny

Grafika Komputerowa Materiały Laboratoryjne

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Główne elementy zestawu komputerowego

Maskowanie i selekcja

Rys. 1. Rozpoczynamy rysunek pojedynczej części

Program graficzny MS Paint.

Opis implementacji: Poznanie zasad tworzenia programów komputerowych za pomocą instrukcji języka programowania.

TWORZENIE OBIEKTÓW GRAFICZNYCH

Zajęcia nr 15 JavaScript wprowadzenie do JavaScript

Algorytmika i programowanie

Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.

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

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

" Przekształcenia. 1. Korzystamy z narzędzi Wielokąt i Krzywa. 3. Zmieniamy rozmiar obrazu i pochylamy go

AUTOCAD teoria i zadania z podstaw rysowania Rysowanie linii, prostej, półprostej, punktu, trasy, polilinii. Zadania geodezyjne.

Ćwiczenie 1 Automatyczna animacja ruchu

Przewodnik po obszarze roboczym

Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2

Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym.

Logo Komeniusz. Gimnazjum w Tęgoborzy. Mgr Zofia Czech

Tematy lekcji informatyki klasa 4a styczeń 2013

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Ćwiczenie 3: Rysowanie obiektów w programie AutoCAD 2010

Narysujemy uszczelkę podobną do pokazanej na poniższym rysunku. Rys. 1

(1,10) (1,7) (5,5) (5,4) (2,1) (0,0) Grafika 3D program POV-Ray

W niniejszym samouczku przedstawiono sposób tworzenia logo dla wymyślonej kawiarni. Tak będzie wyglądać ostateczny efekt pracy:

Animowana grafika 3D Laboratorium 1

Ćwiczenie 3. I. Wymiarowanie

Obsługa mapy przy użyciu narzędzi nawigacji

4. Rysowanie krzywych

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D

CorelDRAW. wprowadzenie

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Następnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej

ToonDoo Maker tworzenie pojedynczej sceny komiksowej

Ćwiczenie nr 2 - Rysowanie precyzyjne

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

Rysowanie punktów na powierzchni graficznej

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.

Podstawy technologii WWW

Animacje z zastosowaniem suwaka i przycisku

1. OPEN OFFICE RYSUNKI

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

Część II Wyświetlanie obrazów

CorelDRAW. 1. Rysunek rastrowy a wektorowy. 2. Opis okna programu

Tworzenie logo. Omówione zagadnienia

Kurs Adobe Photoshop Elements 11

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

Dodatek 4. Zadanie 1: Liczenie plam słonecznych w różnych dniach. Po uruchomieniu programu SalsaJ otworzy się nam okno widoczne na rysunku 4.1.

Grafika Komputerowa Materiały Laboratoryjne

Celem projektu jest stworzenie aplikacji, która będzie przedstawiała, co dzieje się z liśćmi jesienią.

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

Ćwiczenie nr 2 - Rysowanie precyzyjne

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

KARTA INFORMACYJNA Z INFORMATYKI DO KLASY 4. Imię i nazwisko ucznia:

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Wstęp Pierwsze kroki Pierwszy rysunek Podstawowe obiekty Współrzędne punktów Oglądanie rysunku...

1. Prymitywy graficzne

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

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

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

Moduł Grafika komputerowa i multimedia 312[01].S2. Ćwiczenia Podstawy programu Autocad 2011 Prosta

Narzędzia programu Paint

Instrukcja obsługi platformy

Wymagania edukacyjne dla klasy 5 szkoły podstawowej zgodny z podręcznikiem Lubię to!

Podstawy Informatyki Wykład V

Tik Z wiadomości wstępne

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Autokształtów Autokształt AUTOKSZTAŁTY Wstaw Obraz Autokształty Autokształty GDYNIA 2009

Ćwiczenie 1: Pierwsze kroki

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

Podczas tej lekcji przyjrzymy się, jak wykonać poniższy rysunek przy pomocy programu BobCAD-CAM

Tworzenie prezentacji w MS PowerPoint

Zajęcia komputerowe klasy I-III- wymagania

Projektowanie graficzne. Wykład 2. Open Office Draw

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

Java. Wykład 9. Piotr Tronczyk

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

- biegunowy(kołowy) - kursor wykonuje skok w kierunku tymczasowych linii konstrukcyjnych;

Ćwiczenie 4: Edycja obiektów

Opis ikon OPIS IKON. Ikony w pionowym pasku narzędzi: Ikony te używane są przy edycji mapy. ta ikona otwiera szereg kolejnych ikon, które pozwalają na

TWORZENIE SCHEMATÓW BLOKOWYCH I ELEKTRYCZNYCH

Transkrypt:

Grafika Komputerowa Materiały Laboratoryjne Laboratorium 5 Processing Wstęp Laboratorium 1 obejmuje zagadnienie generowania i przetwarzania obrazów z wykorzystaniem języka Processing 2, dedykowanego do obróbki grafiki. Parser i narzędzie developerskie dla języka Processing można pobrać z witryny processing.org, adres https://processing.org/download/?processing Przed rozpoczęciem ćwiczenia należy pobrać odpowiednią wersję pakietu. W przypadku Windows pobrany plik zip należy rozpakować do dowolnego katalogu a następnie uruchomić plik processing.exe. Efektem będzie okno programu z obszarem pozwalającym na wprowadzanie kodu. Programy w języku Processing określane są mianem Sketch a sam język przypomina uproszczoną wersję C. Sketche uruchamia się wciskając przycisk run komunikatów o wykrytych błędach składni.. Dolny pasek służy do wyświetlania

Przed rozpoczęciem ćwiczenia należy pobrać paczkę lab_5_materialy.zip z witryny miki.cs.pollub.pl i rozpakować ją do folderu Lab5 utworzonego na pulpicie Ćwiczenie 1 Zapoznanie z Processing Zadanie: Narysuj podstawowe kształty Narysuj prostokąt Aby zlecić narysowanie prostokąta należy użyć komendy rect(poz_x, poz_y, szerokość, wysokość). Np. rect(100,100,300,150); Znakiem zakańczającym komendę jest standardowo średnik. Wykonanie powyższego kodu spowoduje wyświetlenie okienka z.. kwadratem Processing wykorzystuje współrzędne x, y odpowiadające pikselom obrazu i liczone od lewego górnego narożnika okna. Wykorzystana przez nas komenda powinna w teorii narysować prostokąt umieszczony w odległości x 100 i y 100 punktów od tego narożnika oraz szerokości 300 i wysokości 150. Otrzymaliśmy jednak kwadrat. Dzieje się tak z powodu braku zdefiniowania wielkości kanwy okna w którym ma być narysowany prostokąt. Kod: size(500,500); rect (100,100,300,150); Powoduje już prawidłowe wyświetlenie prostokąta Pozostaje zdefiniowanie kolorów linii, wypełnienia i tła. Tło definiuje się poleceniem background(r, g, b); gdzie r, g, b są wartościami 0-255 w systemie kolorów RGB (można również podać pojedynczą wartość poziomu szarości)

Analogicznie kolor linii obiektu to stroke(r, g, b); a wypełnienie to fill(r, g, b);. Wartości te mogą być zmieniane ale zmiany obowiązują tylko dla nowo rysowanych obiektów. Pozwala to na tworzenie obiektów o różnych kolorach. Np. kod: size(500,500); fill(250,0,0); stroke(0,255,0); rect (100,100,300,150); fill(0,250,0); stroke(255,0,0); rect (100,300,300,150); Da poniższy efekt Określenie koloru dla powyższych poleceń może posiadać jeszcze 4-ty parametr definiujący stopień przezroczystości (r, g, b, alfa). Poniższy kod ilustruje zastosowanie przezroczystości size(500,500); fill(250,0,0,127); stroke(0,255,0); for (int i=1; i<6; i++){ rect (50+20*i,50+20*i,300,150); }

Zadanie samodzielne Narysuj widoczek domek pod lasem. Wykorzystaj również takie podstawowe kształty jak Punkt point(x, y); Linia line(x1, y1, x2, y2); Trójkąt - triangle(x1, y1, x2, y2, x3, y3); Czworokąt - quad(x1, y1, x2, y2, x3, y3, x4, y4) Elipsa ellipse(x_środka, y_środka, szerokość, wysokość); Oraz definicję grubości linii strokeweight(n); Ćwiczenie 2 Rysowanie dowolnych kształtów Zadanie: Narysuj wielokąt Narysuj ośmiokąt Kroki: wypełniony losowym kolorem Losową wartość koloru można uzyskać stosując funkcję random() fill(random(255),random(255),random(255)); Aby zlecić narysowanie dowolnego kształtu można zastosować rysowanie metodą połącz punkty. Program najpierw zapisuje kolejne punkty w pamięci a potem wykonuje ich połączenie. Ważna jest więc kolejność definiowania punktów. Należy również starać się NIE definiować punktów tak aby linie je łączące się przecinały. W takim przypadku Processing będzie miał kłopoty z wypełnieniem tego kształtu. Rozpoczęcie nagrywania punktów kształtu realizowane jest komendą Każdy punkt (werteks) jest definiowany poleceniem vertex(x, y); Nagrywanie zakańcza się po dotarciu do komendy endshape(); Może ona zawierać parametr który spowoduje domknięcie

kształtu (narysowanie linii między ostatnim i pierwszym werteksem) Kod naszego programu: size(200, 200); fill(random(255),random(255),random(255)); stroke(255, 0, 0); vertex(10, 10); vertex(40, 10); vertex(58, 28); vertex(58, 68); vertex(40, 86); vertex(10, 86); vertex(-8, 68); vertex(-8, 28); Jak widać w trakcie ręcznego wyliczania pozycji werteksów przekroczyliśmy krawędź okna kanwy. Aby naprawić sytuację możemy zamiast przeliczania współrzędnych punktów przesunąć układ współrzędnych: translate(x, y); Efekt jest widoczny dla wszystkich nowo narysowanych elementów, dlatego musimy umieścić to polecenie przed rozpoczęciem rysowania kształtu.

Zadanie samodzielne Wykorzystaj poznane funkcje rysowania kształtów do narysowania zestawu czworokątów o losowym wypełnieniu i narożnikach odchylających się losowo o maksimum +- 10% od kształtu kwadratu W wykonaniu zadania przyda się pętla for Zadanie: Narysuj figurę z gładkimi zakrzywieniami Narysuj kształt Processing posiada kilka komend pozwalających na rysowanie przypominający płatek kwiatu zakrzywionych kształtów. Znamy już ellipse, nie pozwala ona jednak na tworzenie dowolnie zakrzywionych linii. Jedną z dostępnych opcji jest funkcja curve tworząca linię krzywą zgodnie ze schematem curve(cpx1, cpy1, x1, y1, x2, y2, cpx2, cpy2); gdzie oprócz początku i końca krzywej podane są dwa punkty kontrolne cpx1, cpy1 oraz cpx2, cpy2 punkty kontrolne regulują kształt krzywej zgodnie z zasadą: Styczna do krzywej w jej punkcie początkowym x1, y1 jest równoległa do linii łączącej pierwszy punkt kontrolny cpx1, cpy1 z końcem krzywej x2, y2. Analogicznie styczna do krzywej w jej punkcie końcowym x2, y2 jest równoległa do linii łączącej drugi punkt kontrolny cpx2, cpy2 z początkiem krzywej x1, y1.

Źródło: processing.org Pojedyncza krzywa to nadal za mało aby móc rysować dowolne gładkie kształty. Do tworzenia wieloczłonowych krzywych wykorzystuje się polecenie curvevertex(x,y); występujące w układzie beginshape() / endshape();. Pierwszy i ostatni z serii punktów curvevertex() są traktowane jako punkty kontrolne. Pozostałe punkty kontrolne dla werteksów określających kolejne krzywe są wyliczane automatycznie według zasady utrzymania gładkości linii. Częstym zabiegiem jest definiowanie punktów kontrolnych początkowego i końcowego w tych samych miejscach co początek i koniec krzywej size(200, 200); fill(random(255),random(255),random(255)); stroke(0); curvevertex(40, 40); // pierwszy punkt kontrolny curvevertex(40, 40); // pierwszy punkt krzywej curvevertex(80, 60); curvevertex(100, 100); curvevertex(60, 120); curvevertex(35, 60); // ostatni punkt krzywej curvevertex(35, 60); // ostatni punkt kontrolny

Zadanie samodzielne Wykorzystaj poznaną metodę tworzenia zamkniętych gładkich kształtów do stworzenia rysunku czterolistnej koniczyny Ćwiczenie 3 Transformacje Zadanie: Narysuj koniczynkę Narysuj czterolistną Kroki: koniczynkę wykorzystując kształt Przeliczanie współrzędnych dla kolejnych listków jest dość uciążliwe. (W pojedynczego listka przypadku koniczyny było to jeszcze w miarę proste zamiany x/y) Zdecydowanie lepszym rozwiązaniem jest wielokrotne wykorzystanie zestawu współrzędnych z pierwszego listka. Znamy już jedno z poleceń transformacji układu współrzędnych przesunięcie translate(x,y); Dwa kolejne to obrót względem początku układu współrzędnych rotate(rad); oraz skala scale(s); Kąt obrotu podawany jest w radianach Dodatkowo dostępne są dwa polecenia uproszczające transformacje wielu obiektów. pushmatrix(); zapisuje na stosie bieżący stan układu współrzędnych, popmatrix(); przywraca układ współrzędnych do pierwszego stanu ze stosu. Pozwala to na wykonanie transformacji układu współrzędnych w celu wykonania określonego przekształcenia rysowanego obiektu a następnie powrót układu współrzędnych do stanu pierwotnego. Algorytm rysowania 4 listnej koniczyny wyglądałby więc następująco size(300, 300); fill(0, 230, 0); smooth(); stroke(0); translate(150,150); // pierwszy liść curvevertex(100, 15); curvevertex(100, 50); curvevertex(60, 60); curvevertex(50, 100); curvevertex(15, 100); pushmatrix(); rotate(radians(90)); // drugi liść // obrócony o 90 stopni curvevertex(100, 15); curvevertex(100, 50); curvevertex(60, 60);

curvevertex(50, 100); curvevertex(15, 100); popmatrix(); pushmatrix(); rotate(radians(180)); // trzeci liść // obrócony o 180 stopni curvevertex(100, 15); curvevertex(100, 50); curvevertex(60, 60); curvevertex(50, 100); curvevertex(15, 100); popmatrix(); pushmatrix(); rotate(radians(270)); // czwarty liść // obrócony o 270 stopni curvevertex(100, 15); curvevertex(100, 50); curvevertex(60, 60); curvevertex(50, 100); curvevertex(15, 100); popmatrix(); Zadanie samodzielne Zbuduj układ czterech koniczynek o różnym kolorze ułożone jedna na drugiej według zasady: każda następna koniczynka jest obrócona o 30 stopni i zmniejszona o 25% w stosunku do poprzedniej Ćwiczenie 3 Funkcje i animacja Zadanie: Narysuj kilka koniczynek

Narysuj koniczynki różnej wielkości i w różnych miejscach Do tego zadania przydatne byłoby stworzenie funkcji rysującej liść koniczyny. Processing wykonuje skrypty Sketche w dwóch trybach. Dotąd korzystaliśmy z trybu statycznego (static), gdzie kod jest wykonywany raz zgodnie z kolejnością linii. W tym trybie Processing nie umożliwia wykorzystania funkcji Processing może również wykonywać skrypty w trybie aktywnym (active). W trybie tym istnieje podział na dwa obszary funkcje wykonywania komend skryptu. Pierwszy obszar objęty strukturą setup() { } zawiera komendy wykonywane raz na początku aktywacji programu Drugi obszar objęty strukturą draw() { } zawiera komendy wykonywane cyklicznie co klatkę aż do zakończenia działania programu. Istnienie obszaru setup() aktywuje tryb aktywny, obszar draw() nie jest obowiązkowy, jeśli nie potrzebujemy odświeżania zawartości ekranu Definicję funkcji tworzy się w analogiczny sposób jak setup i draw void Nowa_funkcja(parametr1, parametr2, ) { kod funkcji } i umieszcza poza tymi dwoma obszarami Przykładowy kod Sketch w trybie active realizujący zadanie z ćwiczenia 2. void setup() { size(600, 600); background(255); fill(150); stroke(0); for (int i = 0; i < 4; i = i+1) { for (int a = 0; a < 4; a = a+1) { plotrandomizedquad (i*120+20, a*120+20, 80, 80, 0.2, 0.2); } //end for i } //end for a } // end setup void plotrandomizedquad(float x, float y, float w, float h, float randw, float randh) { float jitterw = w*randw; float jitterh = h*randh; int xmid = round(x+w/2); int ymid = round(y+h/2); fill(random(255),random(255),random(255)); vertex(x+random(-jitterw, jitterw), y+random(-jitterh, jitterh)); vertex(x+random(-jitterw, jitterw), y+h+random(-jitterh, jitterh)); vertex(x+w+random(-jitterw, jitterw), y+h+random(-jitterh, jitterh)); vertex(x+w+random(-jitterw, jitterw), y+random(-jitterh, jitterh)); } // end plotrandomizedquad

Funkcja rysowania koniczyny powinna mieć parametry odpowiadające za pozycję obrót i skalę koniczynki. koniczynka(x, y, R, s); Funkcja rysowania liścia powinna mieć parametry pozwalające na obrót rysuj_lisc(r); void setup() { size(600, 600); background(255); fill(150); stroke(0); } koniczynka(200, 200, 0, 1); koniczynka(200, 200, 45, 0.5); void koniczynka(int x, int y, int R, float s){ } pushmatrix(); translate(x,y); rotate(radians(r)); scale(s); lisc(0); lisc(90); lisc(180); lisc(270); popmatrix(); void lisc(int r){ pushmatrix(); rotate(radians(r)); // pierwszy punkt kontrolny // pierwszy punkt krzywej curvevertex(100, 15); curvevertex(100, 50); curvevertex(60, 60); curvevertex(50, 100); curvevertex(15, 100); // ostatni punkt krzywej // ostatni punkt kontrolny popmatrix(); }

Zmodyfikuj kod tak aby możliwe było definiowanie koloru i przezroczystości rysowanej koniczynki Zadanie samodzielne Wykorzystaj informacje przedstawione w ćwiczeniu 3 do zbudowania animacji rysowania kolejnych płatków stokrotki (ze zmianą koloru) oraz jej późniejszego obracania Hint: Pewne podpowiedzi można znaleźć w tym tutorialu: https://processing.org/tutorials/transform2d/