Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej



Podobne dokumenty
Jarosław Kuchta. Podstawy Programowania Obiektowego. ćwiczenie 10. Podstawy grafiki w WPF

Programowanie obiektowe i zdarzeniowe wykład 8 grafika i animacja

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

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

Szybkie tworzenie grafiki w GcIde

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.

CorelDRAW. wprowadzenie

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

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

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

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.

4. Rysowanie krzywych

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

4.6 OpenOffice Draw tworzenie ilustracji

Projektowanie graficzne. Wykład 2. Open Office Draw

PyX jest pakietem Pythona do grafiki wektorowej. Pozawala zatem tworzyd pliki EPS oraz PDF.

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Ćwiczenie 6 Animacja trójwymiarowa

Silverlight. Od podstaw

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

Tik Z wiadomości wstępne

I. Menu oparte o listę

Ćwiczenie 2 Warstwy i kształty podstawowe

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

Wstawianie nowej strony

Program graficzny MS Paint.

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

Delphi podstawy programowania. Środowisko Delphi

Tworzenie logo. Omówione zagadnienia

Opis Edytora postaci Logomocji

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

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

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML:

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

Dokumentacja WebMaster ver 1.0

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

Obsługa programu Paint. mgr Katarzyna Paliwoda

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Maskowanie i selekcja

Windows Presentation Foundation

C Biblioteka G2. C.1 Koncepcja biblioteki G2.

Laboratorium programowania urządzeń mobilnych

Obsługa programu Paint materiały szkoleniowe

INFORMATYCZNE SYSTEMY STEROWANIA INSTRUKCJA ĆWICZENIA LABORATORYJNEGO

O czym należy pamiętać?

Dodanie nowej formy do projektu polega na:

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

Ćwiczenie pochodzi ze strony

Kurs programowania 2 - listy

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

Zastosowania informatyki w geologii ćwiczenia 1,2 INKSCAPE 1

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

Zajęcia nr 15 JavaScript wprowadzenie do JavaScript


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

CPT-CAD - Program do tworzenia dokumentacji geologicznej i geotechnicznej

Okno zarządzania warstwami w dokumencie znajduje się na wstążce Narzędzia główne

Konstruktor destruktor Programowanie obiektowe

Programowanie telefonów z Windows Phone 7, cz. 5

Modelowanie obiektowe - Ćw. 1.

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

Ćwiczenia - CorelDraw

Microsoft Small Basic

Animacje cz. 2. Rysujemy koło zębate

Wypełnianie kolorem lub deseniem

Rysowanie precyzyjne. Polecenie:

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Programowanie obiektowe

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

Kod źródłowy programu: program Grafika1; uses crt, graph; (1) var sterownik, tryb:smallint; (2)

1. OPEN OFFICE RYSUNKI

Jak dodać własny szablon ramki w programie dibudka i dilustro

Ćwiczenie 14 Dmuchawce

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

PyGame Gra w Ponga. Spis treści

ToonDoo Maker tworzenie pojedynczej sceny komiksowej

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

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

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

Kolory elementów. Kolory elementów

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

W tej instrukcji zostanie opisany sposób w jaki tworzy się, edytuje i usuwa obiekty na mapie. Następnie wybierz Rysuj

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

TWORZENIE OBIEKTÓW GRAFICZNYCH

Edytor tekstu OpenOffice Writer Podstawy

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

Tworzenie prostych obrazów wektorowych w programie CorelDRAW 12

AutoCAD LT praca na obiektach rastrowych i nakładanie barw z palety RGB na rysunki.

Paweł Kaźmierczak. styczeń 2009

I. Wstawianie rysunków

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Laboratorium Programowanie urządzeń mobilnych

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

Dziedziczenie. Zadanie 1

ZAPOZNANIE SIĘ Z PODSTAWOWYMI SPOSOBAMI

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Krok 1: Stylizowanie plakatu

Język SVG. Język opisu grafiki wektorowej Scalable Vector Graphics

Transkrypt:

Jarosław Kuchta Podstawy Programowania Obiektowego Podstawy grafiki obiektowej

Zagadnienia Grafika proceduralna grafika obiektowa Grafika WPF dualizm XAML C# Właściwości obiektów graficznych edycja właściwości Grafika w kodzie C# Właściwości "dołączane" Zdarzenia połączenie XAML C#

Grafika proceduralna rysowanie za pomocą kontekstu graficznego w Windows wymaga dobrej znajomości wszystkich parametrów procedur graficznych wymaga odpowiedniej kolejności wywoływania procedur graficznych PAINTSTRUCT ps; HDC hdc = BeginPaint(hWindow, &ps); GamePaint(hDC); EndPaint(hWindow, &ps); void GamePaint(HDC hdc) { RECT rect; GetClientRect(hWindow, &rect); DrawText(hDC, TEXT("SuperBall"), -1, &rect, DT_SINGLELINE DT_CENTER DT_VCENTER); MoveToEx(hDC, 10, 40, NULL); LineTo(hDC, 44, 10); LineTo(hDC, 78, 40); }

Grafika obiektowa deklarujemy obiekt klasy "płótno" (Canvas) umieszczamy na płótnie obiekty graficzne: prostokąt (Rectangle) elipsę (Ellipse) linię (Line) ścieżkę (Path) wielolinię (Polyline) wielokąt (Polygon) Stosujemy projektowanie wizualne (What You See Is What You Get) Określamy ich właściwości Płótno "samo" odrysowuje umieszczone na nim obiekty

Windows Presentation Framework Dualizm XAML C# (programowanie "code behind") XAML projekt wizualny strony graficznej zapis "znacznikowy" (XML) C# - kod manipulujący obiektami strony graficznej Projekt: kod C#: XAML:

XAML język znacznikowy Windows Oparty o uniwersalny język znacznikowy XML nazwa elementu XML nazwa klasy WPF znacznik otwierający obiekt znacznik otwierający właściwość znacznik zamykający właściwość znacznik zamykający obiekt nazwa klasy w C# przestrzenie nazw XML właściwości obiektów obiekty zagnieżdżone

Projektowanie wizualne Panel edycji kodu XAML Panel edycji wizualnej Okno edycji strony wizualnej

Dodawanie elementów Toolbox zawiera listę dostępnych obiektów graficznych i innych "kontrolek" (controls) Przeciągnięcie obiektu z toolboxa na powierzchnię projektu powoduje dodanie obiektu do projektu. Dodawany obiekt zostanie umieszczony wewnątrz obiektu, na który został przeciągnięty

Edycja właściwości obiektów Właściwości obiektów możemy zmieniać w kodzie XAML albo w panelu właściwości. Manipulacja obiektem na ekranie też zmienia niektóre właściwości.

Podstawowe właściwości wszystkich elementów WPF Klasa FrameworkElement: Name nazwa obiektu Parent obiekt nadrzędny (zawierający) HorizontalAlignment, VerticalAlignment sposób wyrównania do obiektu nadrzędnego Margin margines (odstęp od krawędzi obiektu nadrzędnego) Width, Height projektowana szerokość i wysokość kształtu MinWidth, MinHeight minimalna szerokość i wysokość MaxWidth, MaxHeight maksymalna szerokość i wysokość ActualWidth, ActualHeight aktualna szerokość i wysokość Visibility czy obiekt jest widoczny Opacity stopień nieprzezroczystości (0-przezroczysty, 1-nieprzezroczysty)

Podstawowe właściwości wszystkich kształtów Klasa Shape: FrameworkElement: Fill sposób wypełnienia (obiekt klasy Brush) Stroke sposób rysowania (obiekt klasy Brush) StrokeThickness grubość linii rysowania StrokeDashArray tablica opisująca wzór dla linii przerywanej StrokeDashOffset przesunięcie wzoru linii przerywanej StrokeStartLineCap, StrokeEndLineCap sposób zakończenia rysowania linii (z obu stron) StrokeDashCap sposób zakończenia segmentów linii przerywanej StrokeLineJoin sposób łączenia segmentów linii StrokeMiterLimit parametr dla jednego ze sposobów łączenia segmentów linii

Rysowanie linii Klasa Line: Shape: X1,Y1 współrzędne pierwszego punktu X2, Y2 współrzędne drugiego punktu

Przykłady wzorów linii StrokeThickness="1" StrokeDashArray="1,2,1,2" StrokeThickness="1" StrokeDashArray="1,5,1,5" StrokeThickness="5" StrokeDashArray="1,2,1,2" StrokeThickness="5" StrokeDashArray="1,2,1,2" StrokeDashCap="Round" StrokeThickness="5" StrokeThickness="5" StrokeMitterLimit="1" StrokeThickness="5" StrokeLineJoin="Round"

Pędzel (Brush) Klasa definiująca sposób wypełnienia kształtu zamkniętego albo rysowania linii: SolidColorBrush wypełnienie jednolite GradientBrush wypełnienie gradientowe LinearGradientBrush wypełnienie gradientowe liniowe RadialGradientBrush wypełnienie gradientowe kołowe BitmapCacheBrush TileBrush

Wypełnienie jednolite Klasa SolidColorBrush: Color kolor wypełnienia Sposób definiowania koloru <SolidColorBrush Color="nazwa_koloru"/> <SolidColorBrush Color="#rgb"/> <SolidColorBrush Color="#argb"/> <SolidColorBrush Color="#rrggbb"/> <SolidColorBrush Color="#aarrggbb"/> <SolidColorBrush Color="sc#scA,scR,scG,scB"/> Składowe: A nieprzezroczystość (Alpha) R czerwona (Red) G zielona (Green) B niebieska (Blue) sc składowa wyrażona jako liczba rzeczywista od 0 do 1

Predefiniowane kolory (1)

Predefiniowane kolory (2)

Wypełnienie gradientowe liniowe Klasa LinearGradientBrush: StartPoint, EndPoint współrzędne początku i końca linii wypełniania GradientStops wartości koloru na linii

Wypełnienie gradientowe Klasa RadialGradientBrush: liniowe GradientOrigin współrzędne początku wypełniania RadiusX, RadiusY promienie (poziomy i pionowy) elipsy wypełniania GradientStops wartości koloru wzdłuż promienia

Rysowanie wielokąta Klasa Polygon: Shape: Points współrzędne kolejnych punktów

Klasa Path: Shape: Rysowanie ścieżki (geometria) Data dane ścieżki (geometria - PathGeometry)

Skrócony zapis geometrii ścieżki M Move (przesunięcie) X, Y L Line (odcinek linii prostej) X, Y H Horizontal (odcinek linii poziomej) X V Vertical (odcinek linii pionowej) Y C Curve (odcinek krzywej Beziera) CP1, CP2 A Arc (odcinek łuku) Rx, Ry, Rot, L, S, X, Y Z Zero (zamknięcie krzywej)

Grafika w kodzie C# Zamiast konstruować obiekty graficzne w kodzie XAML, można to robić w kodzie C# Zastosowanie tam, gdzie obiekty muszą być konstruowane dynamicznie

Manipulowanie właściwościami w kodzie C# W kodzie C# można manipulować właściwościami obiektów graficznych tak samo, jak innych obiektów. Można też manipulować obiektami graficznymi tak samo, jak innymi obiektami.

Właściwości "dołączane" Właściwości "dołączane" są zdefiniowane w innej klasie niż sam obiekt. W ten sposób można zdefiniować właściwości dla klas już zamkniętych. Właściwości Canvas.Left i Canvas.Top, chociaż są zdefiniowane w klasie Canvas, to określają położenie prostokąta (Rectangle)

Manipulacja właściwościami dołączanymi w kodzie C# Aby odczytać właściwość Left, trzeba użyć metody statycznej GetLeft klasy Canvas Aby zmienić właściwość Top, trzeba użyć metody statycznej SetLeft klasy Canvas.

Zdarzenia Procedury w kodzie są wykonywane w reakcji na tzw. zdarzenia (event). Zdarzenie określa sytuację, w której coś następuje. Każda klasa WPF ma zdefiniowane zdarzenia, np.: SizeChanged zmiana rozmiaru Click naciśnięcie przycisku Programista definiuje tzw. procedurę obsługi zdarzenia. Procedura jest wywoływana przy nastąpieniu zdarzenia.

Definiowanie procedur obsługi zdarzeń Aby zdefiniować procedurę obsługi zdarzenia wystarczy otworzyć zakładkę "Events" na panelu właściwości i dwa razy kliknąć puste pole na określonej pozycji. Procedura jest tworzona (wraz z parametrami), a jej adres wpisywany jako właściwość do obiektu.

Wypełnianie procedury kodem Automatycznie otwierane jest okno edycji kodu, gdzie programista wpisuje odpowiedni kod. Wskazane jest tworzenie osobnych procedur manipulacji obiektami graficznymi i wywoływanie ich z procedur obsługi zdarzeń. Dzięki temu ta sama procedura manipulacji może być wielokrotnie wykorzystana przy różnych zdarzeniach.

Wnioski Zastosowanie techniki obiektowej umożliwia dużo łatwiejsze manipulowanie grafiką niż w przypadku podejścia proceduralnego. Projektowanie wizualne umożliwia natychmiastowe zobaczenie strony wizualnej programu. Warto projektować wizualnie początkowy obraz strony, a manipulować obiektami graficznymi w kodzie. Trzeba pamiętać, że procedury manipulacji zapisane w kodzie są wywoływane w reakcji na zdarzenia.