Zalety grafiki interakcyjnej

Podobne dokumenty
pracy używa stale grafiki komputerowej.

Techniki animacji komputerowej

Podstawy grafiki komputerowej

Grafika komputerowa i wizualizacja

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Wymagania edukacyjne na ocenę z informatyki klasa 3

Misja#3. Robimy film animowany.

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Spis treści. 1 Moduł Mapy 2

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Modelowanie krzywych i powierzchni

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

ECDL Podstawy programowania Sylabus - wersja 1.0

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Dostawa oprogramowania. Nr sprawy: ZP /15

ECDL/ICDL CAD 2D Moduł S8 Sylabus - wersja 1.5

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Szybkie prototypowanie w projektowaniu mechatronicznym

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Plan nauczania informatyki Opracował: mgr Daniel Starego

Programowanie obiektowe - 1.

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

biegle i poprawnie posługuje się terminologią informatyczną,

miejsca przejścia, łuki i żetony

Algorytm. Krótka historia algorytmów

Modelowanie w projektowaniu maszyn i procesów cz.5

Modelowanie i Programowanie Obiektowe

VectraPortal. VectraPortal. wersja Instrukcja użytkownika Podstawowa funkcjonalność serwisu. [czerwiec 2016]

INSTRUKCJA UŻYTKOWNIKA. Spis treści. I. Wprowadzenie II. Tworzenie nowej karty pracy a. Obiekty b. Nauka pisania...

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

INSTRUKCJA DO ĆWICZENIA NR 4

Wprowadzenie do multimedialnych baz danych. Opracował: dr inż. Piotr Suchomski

Modelowanie Informacji o Budynku (BIM)

Sieci Petriego. Sieć Petriego

Profesjonalni i skuteczni - projekt dla pracowników branży telekomunikacyjnej

Warunki i sposoby realizacji podstawy programowej kształcenia ogólnego w klasie IV i VII szkoły podstawowej z informatyki.

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

System wizyjny OMRON Xpectia FZx

INFORMATYKA KLASA VII Wymagania na poszczególne oceny

Animacje z zastosowaniem suwaka i przycisku

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Podstawy Informatyki Wykład V

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Wykład I. Wprowadzenie do baz danych

KLASA 7 szk.podst. Stopień dostateczny Uczeń: wymienia cztery dziedziny,

czyli Arkuszy / Układów na podstawie modelu

Projektowanie graficzne. Wykład 2. Open Office Draw

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

MODELOWANIE I SYMULACJA UKŁADÓW PNEUMATYCZNYCH, HYDRAULICZNYCH I ELEKTRYCZNYCH za pomocą programu komputerowego AUTOMATION STUDIO

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

PROGRAMOWALNE STEROWNIKI LOGICZNE

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Zasady programowania Dokumentacja

Przygotowała Elżbieta Pastucha na podstawie CityGML OGC Standard for Photogrammetry by Thomas H. Kolbe, Claus Nagel, Alexandra Stadler

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Materiały do laboratorium MS ACCESS BASIC

dr inż. Tomasz Krzeszowski

Wprowadzenie do programowania

Technologie informacyjne - wykład 12 -

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

Advance CAD 2016 SP2. W tym dokumencie opisano ulepszenia w Advance CAD Service Pack 2. Co nowego w Advance CAD 2016 SP2

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

INFORMATYKA

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

EXSO-CORE - specyfikacja

PRZEWODNIK PO PRZEDMIOCIE

GIS / Projekt obiektu elektroenergetycznego. Ćwiczenia 2 Mapa wektorowa PG/ Warstwy

Materiały szkoleniowe Moduł Mapa inwestora. Starostwo Powiatowe w Chełmie

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Wykład z Technologii Informacyjnych. Piotr Mika

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Bazy danych TERMINOLOGIA

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

PL B1. ABB Sp. z o.o.,warszawa,pl BUP 26/01. Michał Orkisz,Kraków,PL Mirosław Bistroń,Jarosław,PL

Program szkolenia AutoCAD Poziom podstawowy i zaawansowany (zagadnienia pogrubione)

INSTRUKCJA OBSŁUGI PROGRAMU REJESTRACJI I AKWIZYCJI DANYCH REJESTRATOR 9.2

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

Kryteria oceniania uczniów z informatyki w klasie II gimnazjum

Definicje. Algorytm to:

NOWOŚCI W CABRI 3D v2.

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Transkrypt:

Zalety grafiki interakcyjnej Grafika zapewnia jeden z najbardziej naturalnych środków komunikacji z komputerem, ponieważ nasze wysoce rozwinięte zdolności rozpoznawania obrazów 2D i 3D umożliwiają nam odbieranie i przetwarzanie danych obrazowych szybko i wydajnie. Dzisiaj w wielu projektach, implementacjach i procesach konstrukcyjnych informacja, jaką niesie obraz, jest w zasadzie niezbędna. Wizualizacja naukowa stała się ważnym obszarem prac w końcu lat osiemdziesiątych, kiedy naukowcy i inżynierowie doszli do wniosku, że nie mogą interpretować ogromnych ilości danych produkowanych przez superkomputery bez przedstawiania danych i uwypuklania trendów i zjawisk za pomocą różnego rodzaju reprezentacji graficznych. Interakcyjna grafika komputerowa jest najważniejszym środkiem tworzenia obrazów od wynalezienia fotografii i telewizji Ma ona tę dodatkową zaletę, że korzystając z komputera możemy tworzyć obrazy: istniejących rzeczywistych obiektów, ale również abstrakcyjnych, syntetycznych obiektów, danych, które nie mają wewnętrznej geometrii, tak

jak wyniki pomiarów nie musimy ograniczać się do obrazów statycznych, chociaż obrazy statyczne są dobrym środkiem przekazywania informacji obrazy zmieniające się dynamicznie są znacznie efektywniejsze, zwłaszcza dla zjawisk zmiennych w czasie o na przykład wygięcie skrzydła samolotu w locie ponaddźwiękowym o ewolucja twarzy ludzkiej od dzieciństwa do wieku starczego dynamice podlegają zarówno obrazy rzeczywiste jak i abstrakcyjne, np.: o trendy wzrostu, takie jak zużycie energii jądrowej o przemieszczanie się ludności z miast do przedmieść i z powrotem do miast, itp. obiekty mogą być przesuwane i obracane wokół nieruchomego obserwatora, obiekty mogą pozostać nieruchome, a obserwator może się poruszać wokół nich, można przesuwać wirtualną kamerę i wybierać odpowiedni fragment pola wizualizacji, można robić albo zbliżenie, albo oddalenie kamery po to, żeby uzyskać więcej albo mniej szczegółów, tak jak przy obserwacji przez wizjer szybko poruszającej się kamery wideo w wielu przypadkach porusza się i obiekt i kamera o typowy przykład to symulator lotu, w którym

mechaniczna platforma imitująca kokpit jest połączona z ekranami do wyświetlania widoków widzianych przez okna kokpitu, a komputer steruje ruchem platformy, przyrządami pomiarowymi i symulowanym światem ze stacjonarnymi i ruchomymi obiektami, o w lunaparkach w różnych symulatorach można podróżować po różnych symulowanych ziemskich i pozaziemskich terenach o salony gier oferują gry zręcznościowe wykorzystujące grafikę oraz wyścigi samochodowe w symulatorach, a także gry wideo wykorzystujące interakcyjny ruch Uaktualnianie dynamiki ruchu polega na zmienianiu kształtu, barwy i innych własności oglądanych albo modelowanych obiektów, np.: system może wyświetlać odkształcenia struktury samolotu w czasie lotu zmiany stanów w schemacie blokowym reaktora jądrowego w odpowiedzi na sterowanie przez operatora różnymi mechanizmami reprezentowanymi w postaci graficznej im zmiany są płynniejsze, tym bardziej realistyczny i wartościowy jest wynik.

Interakcyjna grafika komputerowa umożliwia wielostronną współpracę człowieka z komputerem. Taka współpraca w istotny sposób zwiększa naszą: zdolność rozumienia danych, wychwytywania tendencji i wizualizowania rzeczywistych i nierzeczywistych obiektów

Ogólny schemat grafiki interakcyjnej Pokazany na rysunku ogólny schemat może być wykorzystany do niemal każdego interakcyjnego systemu graficznego: na poziomie sprzętu (nie pokazanym bezpośrednio na rysunku) komputer odbiera sygnały wejściowe od współdziałających urządzeń i wysyła obrazy do urządzenia wyświetlającego oprogramowanie ma trzy elementy składowe: o program użytkowy, który tworzy informacje, zapamiętuje je w drugim elemencie i odzyskuje je od niego o drugi element to model zastosowania, który reprezentuje dane albo obiekty, jakie mają być wyświetlone na ekranie o system graficzny program użytkowy obsługuje również wejście użytkownika i tworzy obrazy dzięki wysyłaniu do systemu graficznego ciągów wyjściowych poleceń graficznych, które zawierają szczegółowy opis geometryczny tego co ma być wyświetlone i atrybuty opisujące wygląd obiektu.

System graficzny jest odpowiedzialny za faktyczne utworzenie obrazu na podstawie szczegółowych opisów i za przekazanie wejścia użytkownika do przetwarzania przez program użytkowy. System graficzny jest więc pośrednikiem między programem użytkowym a sprzętem wyświetlającym system wykonuje: przekształcenia wyjściowe od obiektów w modelu zastosowania do obrazu modelu symetrycznie wykonuje on przekształcenia wejściowe od akcji użytkownika do wejścia do programu użytkowego, który spowoduje wykonanie zmian w modelu albo obrazie. Podstawowym zadaniem projektanta programu użytkowego z interakcyjną grafiką jest określenie klas danych wejściowych albo obiektów, które mają być generowane i reprezentowane obrazowo, oraz określenie, jak ma przebiegać interakcja między użytkownikiem a programem użytkowym przy tworzeniu i modyfikowaniu modelu i jego wizualnej reprezentacji. Większość zadań programisty koncentruje się raczej na tworzeniu i edycji modelu zastosowania oraz obsłudze interakcji użytkownika niż na faktycznym tworzeniu obrazów, ponieważ to zadanie jest wykonywane przez system graficzny.

Model zastosowania Pojęcie modelu zastosowania obejmuje wszystkie dane i obiekty jak również zależności między nimi, które są istotne dla części programu użytkowego związanej z wyświetlaniem i interakcją oraz dla wszystkich niegraficznych modułów przetwarzania końcowego. Przykładami takich niegraficznych modułów przetwarzania końcowego są: analiza stanów przejściowych układu, analiza naprężeń w skrzydle samolotu, symulacja modelu populacji, symulacja zmian pogody, obliczanie kosztorysów budów, itp. W klasie zastosowań typowych dla programów malarskich takich jak MacPaint i PCPaint, przeznaczeniem programu jest tworzenie obrazu przez użytkownika, który ma możliwość ustawiania lub modyfikowania pikseli. Tutaj bezpośredni model zastosowania nie jest potrzebny obraz jest zarówno środkiem, jak i efektem końcowym, a wyświetlana mapa bitowa albo pikselowa służy jako model zastosowania.

Częściej jednak można zidentyfikować model zastosowania reprezentujący obiekty użytkowe za pomocą kombinacji danych oraz opisu proceduralnego, który jest niezależny od określonego urządzenia wyświetlającego. Opisy proceduralne są używane na przykład do definiowania fraktali. Model danych może być tak elementarny jak tablica punktów danych albo tak złożony jak powiązana lista reprezentująca strukturę sieci danych albo relacyjną bazę danych pamiętającą zbiór relacji. Często mówi się o pamiętaniu modelu zastosowania w bazie danych zastosowania będziemy używamy tych pojęć zamiennie. Modele (np. CAD) na ogół pamiętają opisy prymitywów: punkty, odcinki, krzywe i wielokąty w 2D i 3D oraz wielościany i powierzchnie w 3D Definiują one: kształty elementów obiektów, atrybuty obiektów, takie jak styl linii, barwa albo tekstura powierzchni relacje spójności i rozmieszczenie danych, które opisują sposób łączenia elementów ze sobą.

W modelu zastosowania danym geometrycznym często towarzyszą informacje o właściwościach niegeometrycznych: tekstowe albo numeryczne. Własności niegeometryczne są użyteczne dla programu przetwarzania końcowego albo dla współpracującego użytkownika. W zastosowaniach CAD-owskich takimi przykładami są: dane produkcyjne, dane o cenach i dostawcach, właściwości termiczne, mechaniczne, elektryczne albo elektroniczne oraz mechaniczne albo elektroniczne tolerancje.

Wyświetlanie modelu Program użytkowy tworzy model zastosowania: albo w wyniku wcześniejszych obliczeń, jak to ma miejsce w symulacji inżynierskiej lub naukowej na superkomputerach, albo w wyniku interakcyjnej sesji przy urządzeniu wyświetlającym, w czasie której użytkownik kieruje procesem konstruowania krok po kroku, wybierając elementy i właściwości geometryczne i niegeometryczne. W dowolnym czasie użytkownik może zażądać, żeby program użytkowy pokazał widok dotychczas utworzonego modelu. Wyraz widok można rozumieć w sensie: wizualnego renderingu właściwości geometrycznych modelowanych obiektów, w technicznym sensie bazodanowym prezentacji 2D właściwości podzbioru modelu. Modele zależą od zastosowania i mogą być tworzone niezależnie od systemu wyświetlania. Dlatego program użytkowy musi dokonać konwersji opisu części modelu, która ma być pokazana, z wewnętrznej reprezentacji geometrii (zapamiętanej bezpośrednio w modelu albo uzyskanej na bieżąco) na odpowiednie procedury albo polecenia wykorzystywane przez system graficzny przy tworzeniu obrazu.

Proces konwersji ma dwie fazy: program użytkowy korzystając z pewnych kryteriów wyboru albo pytań przeszukuje bazę danych zastosowania, w której jest zapamiętany model w celu wybrania części, które mają być pokazane. po drugie, wybrane dane albo geometria, plus atrybuty są zamieniane na format, który może być wysłany do systemu graficznego. Kryteria wyboru mogą być: geometryczne, na przykład część modelu, która ma być pokazana, została przesunięta za pomocą graficznego odpowiednika przesuwania albo powiększania za pomocą kamery, podobne do tradycyjnych kryteriów wyszukiwania w bazie danych. Dane uzyskane w czasie przeszukiwania bazy danych muszą być danymi geometrycznymi, albo muszą być zamienione na dane geometryczne Dane geometryczne z kolei mogą być przedstawione systemowi graficznemu albo w postaci: prymitywów, które system może wyświetlić bezpośrednio, atrybutów, które określają wygląd prymitywów.

Prymitywy wyświetlania na ogół odpowiadają prymitywom zapamiętanym w modelach geometrycznych: odcinkom, prostokątom, wielokątom, okręgom, elipsom, tekstom 2D, wielościanom 3D, kulom, elipsoidom, tekstom 3D, itp. System graficzny na ogół składa się ze zbioru wyjściowych podprogramów, odpowiadających różnym prymitywom, atrybutom i innym elementom. Są one zebrane: w bibliotece podprogramów graficznych albo w pakiecie, który może być wywołany z języków wyższego poziomu, np. C++, Pascal albo Java. Program użytkowy określa prymitywy geometryczne i atrybuty potrzebne dla tych podprogramów, a biblioteki i pakiety z kolei sterują odpowiednim urządzeniem wyświetlającym i powodują wyświetlenie obrazu.

Podobnie jak konwencjonalne systemy wejścia/wyjścia tworzą logiczne jednostki wejścia/wyjścia po to, żeby uchronić programistę przed wieloma szczegółami dotyczącymi sprzętu i programów sterujących urządzeń, systemy graficzne tworzą logiczne urządzenia wyświetlające. Ta abstrakcja urządzeń wyświetlających odnosi się zarówno do wyprowadzania obrazów, jak i do interakcji za pomocą logicznych urządzeń wejściowych. Na przykład: myszka, tablet, ekran dotykowy, drążek sterowniczy albo kula śledząca mogą być traktowane jako logiczne wejściowe urządzenie wskazujące, które podaje współrzędne (x, y) na ekranie. Program użytkowy może zażądać od systemu graficznego albo podania próbki z urządzenia wejściowego (to znaczy zapytać o bieżącą wartość) albo czekać w określonym miejscu, aż wystąpi zdarzenie polegające na aktywacji urządzenia przez użytkownika.

Obsługa interakcji W programie użytkowym typowym schematem obsługi interakcji jest pętla sterowana zdarzeniami. Można ją przedstawić jako automat skończony z centralnym stanem oczekiwania i przejściami do innych stanów wywoływanych przez zdarzenia będące wynikiem akcji użytkownika. Do przetwarzania polecenia mogą być potrzebne zagnieżdżone pętle zdarzeń, mające taki sam format, jak swoje własne stany i przejścia wywoływane przez wejście. Program użytkowy może również próbkować urządzenia wejściowe typu lokalizator, pytając w dowolnej chwili o ich wartości, a otrzymaną wartość program traktuje z kolei jako wejście do procedury przetwarzania, która również zmienia stan programu użytkowego, obraz albo bazę danych. Pętlę sterowaną zdarzeniami charakteryzuje następujący schemat zapisany w postaci pseudokodu:

generowanie początkowego obrazu na podstawie modelu zastosowania do { } możliwość wyboru poleceń albo obiektów /* Program jest w stanie oczekiwania na akcję użytkownika */ wait oczekiwanie na akcję użytkownika switch ( rozejście zależnie od akcji) { obsługa wybranej akcji, uaktualnienie modelu i ekranu, jeżeli jest to konieczne while (!quit) /* Użytkownik nie wybrał opcji quit"*/ Na ogół program użytkowy odpowiada na akcję użytkownika na jeden z dwóch sposobów: akcja użytkownika może wymagać tylko uaktualnienia ekranu na przykład system może odpowiedzieć podświetlając wybrany obiekt albo udostępniając nowe menu wtedy program użytkowy musi tylko uaktualnić swój wewnętrzny stan i wywołać pakiet graficzny po to, żeby uaktualnić ekran nie ma potrzeby uaktualniania bazy danych, jeżeli akcja użytkownika wymaga zmiany modelu na przykład dodania albo usunięcia elementu to

program użytkowy musi uaktualnić model, a następnie wywołać program graficzny w celu uaktualnienia ekranu na podstawie modelu. W celu zregenerowania obrazu: jest przeszukiwany cały model albo ekran jest uaktualniany selektywnie, dla bardziej wyrafinowanych algorytmów przyrostowouaktualniających Trzeba pamiętać, że na ekranie nie może nastąpić żadna istotna zmiana obiektu bez odpowiedniej zmiany w modelu. W istocie ekran jest oknem komputera, w którym w ogólnym przypadku, użytkownik manipuluje raczej modelem niż obrazem, przy czym model formalnie i symbolicznie jest poza obrazem. Jedynie w zastosowaniach malarskich i związanych z ulepszaniem obrazu model i obraz są identyczne. Interpretacja wejścia użytkownika należy do programu użytkowego. System graficzny nie odpowiada za tworzenie albo modyfikowanie modelu ani początkowo, ani w odpowiedzi na akcję użytkownika jego jedynym zadaniem jest tworzenie obrazu na podstawie opisu geometrycznego i przekazywanie danych wejściowych użytkownika.

Model z pętlą zdarzenia jest podstawowym modelem w obecnej praktyce grafiki komputerowej niemniej jest on ograniczony w tym sensie, że dialog użytkownik - komputer jest sekwencyjnym modelem typu ping - pong, w którym na zmianę zachodzą: akcja użytkownika i reakcja komputera. W przyszłości możemy się spodziewać konwersacji równoległych, w których będzie następowało równoczesne wprowadzanie i wyprowadzanie przy wykorzystaniu licznych kanałów komunikacyjnych na przykład zarówno grafiki jak i głosu. Formalizm dla takiej swobodnej konwersacji, nie wspominając już o konstrukcjach języków programowania, jeszcze nie został dobrze opracowany.