OOPSmalltalk for Wndows- Grafika, Windows1 Grafika w Smalltalku Grafika rastrowa (bit-mapy). Piksel (pixel, picture element) - punkt na ekranie. Mapa bitowa.

Slides:



Advertisements
Podobne prezentacje
Statistics – what is that? Statystyka dla gimnazjalistów.
Advertisements

Sun altitude Made by: Patryk Cichy Patryk Cichy Mateusz Dąbrowicz Mateusz Dąbrowicz Mariusz Król Mariusz Król Mariusz Dyrda Mariusz Dyrda Group leader:
ALLEGRO PIERWSZA GRA: WYŚCIG
The current movement of the Ground and his after-effect
POLISH FOLK DANCE - KUJAWIAK
Exact Software Poland Sp z o.o. Adam Sasin AXA TUiR
1 Building Integration System - Training Internal | ST-IST/PRM1 | 02/2008 | © Robert Bosch GmbH All rights reserved, also regarding any disposal,
Pierwszy dzień w collegu St. Augustin w Angers. Czwartek, 20 maja To był nasz pierwszy dzień w collegu St. Augustina w Angers, który rozpoczął się o 8:00.
REKURENCJA.
Porysujmy trochę czyli Łączenie SQLa, AutoCADa i Delphi
BLOOD DONATION.
db4o Kacper Skory Marcin Talarek
W Nowym Sączu Symetria (gr. συμμετρια, od συμ, podobny oraz μετρια, miara) – właściwość figury, bryły lub ogólnie dowolnego obiektu matematycznego (można.
Czyli jak zrobić prezentację komputerową?
Moja Prezentacja Aleksandra Skorupa.
Prezentację przygotowała Bożena Piekar
FUNKCJA L I N I O W A Autorzy: Jolanta Kaczka Magdalena Wierdak
Rodzaje układów równań
ZACZYNAM. Wartość wyrażenia 3+2*23-15= a)40 b)100 c)34.
Widzisz byłego prezydęta Clintona i jego następcę Gora? Nie... To są 2 twarze Clintona ale z innym uczesaniem. Co widzisz?
ODYSEJA UMYSŁU.
III. Proste zagadnienia kwantowe
Portal Systemu Jakości Kształcenia Jak się zalogować? Instrukcja dla pracowników UMCS Przygotowanie: Urszula Wojtczak, Zespół Obsługi Systemu Jakości Kształcenia.
Efekt cieplarniany jako skutek nadmiernej emisji CO 2 Wrzesień – Październik 2009 TWORZENIE SZKÓŁ DLA ZRÓWNOWAŻONEGO ROZWOJU.
Podstawowe jednostki informacji, co to jest bit i bajt?
Jeden komputer i co dalej? Lekcje z PowerPointem Anna Gadomska Szkoła Podstawowa Nr 79 Łódź
Przeglądanie inOrder function BSTinorder(BSTNode root) if root NOT NULL BSTinorder(root.left) Print(root) BSTinorder(root.right) 2, 4, 6, 8, 9, 10, 12,
Prezentacja z przedmiotu „systemy wizyjne”
Prezentacja z przedmiotu systemy wizyjne Biblioteka Point Cloud Library Przygotowali: Paweł Król, Michał Kulbat Recenzent: Krzysztof Holak.
Wacław Sierpiński.
Writing about my new house
Formatowanie i modyfikacja dokumentu tekstowego
Prawa Dziecka.
Analiza stanu naprężenia
1 Oddziaływanie grawitacyjne. 2 Eliminując efekty związane z oporem powietrza możemy stwierdzić, że wszystkie ciała i lekkie i ciężkie spadają z tym samym.
Jeżdżę z głową.
Powrót do sukcesu Analiza przypadku Princessy (rola badań marketingowych podczas rozwoju produktu: ) Powrót do sukcesu Analiza przypadku Princessy.
PHP Operacje na datach Damian Urbańczyk. Operacje na datach? Dzięki odpowiednim funkcjom PHP, możemy dokonywać operacji na datach. Funkcje date() i time()
Prezentacja dla klasy III gimnazjum Przedmiot: matematyka Dział: Funkcje Temat: Graficzna ilustracja układów równań (lekcja pierwsza)
Soczewka skupiająca Wiązka równoległa po przejściu przez soczewkę wypukłą skupia się w jednym punkcie. Ten punkt nazywa się ogniskiem soczewki F.
Optyka Widmo Światła Białego Dyfrakcja i Interferencja
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
BEZPIECZNY INTERNET. PRZEGLĄDANIE STRON INTERNETOWYCH.
Opracowała: Iwona Kowalik
SKALA MAPY Skala – stosunek odległości na mapie do odpowiadającej jej odległości w terenie. Skala najczęściej wyrażona jest w postaci ułamka 1:S, np. 1:10.
Sieci komputerowe. Nowe technologie komputerowe
Metody geometrycznego dodawania wektorów. Metoda trójkątaMetoda równoległoboku Dane są dwa wektory: Szukamy wektora c : b a a a c c bb 1.Przerysuj pierwszy.
Struktury Sieci Neuronowych
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Pliki elementowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików elementowych. Pliki takie zawierają informację zakodowaną
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
Instalacja DAPP Optic Instrukcja. Po włożeniu płyty do napędu optycznego instalacja rozpoczyna się automatycznie. W pojawiającym się oknie klikamy przycisk.
Prostokątny układ współrzędnych na płaszczyźnie
Łamana Anna Gadomska S.P. 79 Łódź.
Próbna matura z matematyki Piotr Ludwikowski. Rozporządzenie MEN z dnia 30 kwietnia 2007 w sprawie warunków i sposobu oceniania, klasyfikowania i promowania.
Skala i plan mgr Janusz Trzepizur.
HTML cz.3 Tabele cd. oraz ramki
Temat 1: Składnia języka HTML
Temat 1: Umieszczanie skryptów w dokumencie
Teksty prymarne (original texts) to teksty autentyczne, nie są przeznaczone dla celów dydaktycznych; teksty adaptowane (simplified/adapted texts)są przystosowane.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
Bardzo pożyteczna rzecz, czy narzędzie zbrodni?
January 2O13.
REKSIO.
What comes to your mind when you think about WATERFALLS? *** Co Ci się przypomina gdy myślisz o WODOSPADACH?
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Zapis prezentacji:

OOPSmalltalk for Wndows- Grafika, Windows1 Grafika w Smalltalku Grafika rastrowa (bit-mapy). Piksel (pixel, picture element) - punkt na ekranie. Mapa bitowa (Bitmap) - tablica bitów, reprezentacja obrazu 1 = biały 0 = czarny Point - punkt na ekranie (na mapie bitowej), piksel Przypomnijmy (niepełny) fragment hierarchii z Dolphina: Object Magnitude ArithmeticValue Number Float Integer Point Association Character Date Time

OOPSmalltalk for Wndows- Grafika, Windows2 Point 10punkt o współrzędnych (3, 10) aNumber - metoda tworząca nowy punkt (nas będą interesować tylko współrzędne całkowite) (0, 0) - współrzędne lewego górnego rogu ekranu metody klasy Point: x daje pierwszą współrzędną y daje drugą współrzędną x: aNumber ustawia współrzędną y y: aNumber ustawia współrzędną y >= = ) Uwaga: p1 <= p2 i p2 <= p1 wtw p1 = p Point< anArithmeticValue | aPoint | aPoint := anArithmeticValue asPoint. ^x < aPoint x and: [ y < aPoint y ]

OOPSmalltalk for Wndows- Grafika, Windows3 Point cd Point>>+ arithmeticValue (oraz * - /) ArithmeticValue>>// (oraz \\) wykonują odp. operacje na współrzędnych Point>>+ anArithmeticValue ^anArithmeticValue addToPoint: self Point>>addToPoint: aPoint ^(aPoint x + (aPoint y + y) ArithmeticValue>>addToPoint: aPoint ^aPoint retry: #+ coercing: self ArithmeticValue>>retry: aSymbol coercing: anArithmeticValue | selfGen argGen | selfGen := self generality. argGen := anArithmeticValue generality. selfGen > argGen ifTrue: [^self perform: aSymbol with: (self coerce: anArithmeticValue)]. selfGen < argGen ifTrue: [^(anArithmeticValue coerce: self) perform: aSymbol with: anArithmeticValue]. ^self error: 'cannot coerce ArithmeticValues of same generality' Point>>coerce: anArithmeticValue ^anArithmeticValue asPoint (generality: SmallInteger<LargeInteger<Fraction<ScaledDecimal<Float<Point<Point3D) ArithmeticValue>>// operand ^(self / operand) floor

OOPSmalltalk for Wndows- Grafika, Windows4 Point cd Magnitude>>between: min and: max czy wartość leży pomiędzy zadanymi Point>>min: aPoint (podobnie max:) daje nowy punkt - minimum po obu punktach Rectangle>>moveBy: aPoint (podobnie moveTo:, expandBy:, parametrem może być Point lub Number) daje prostokąt przesunięty o zadany punktem wektor Point>>transpose zamienia miejscami x i y Magnitude>>between: min and: max ^self >= min and: [self <= max] Point>>min: aPoint ^(x min: aPoint (y min: aPoint y)

OOPSmalltalk for Wndows- Grafika, Windows5 Rectangle Reprezentuje prostokąt o bokach równoległych do osi układu współrzędnych. Sam jest z kolei reprezentowany przez 2 punkty: origin - lewy górny róg corner - prawy dolny róg. (ma oba akcesory do origin i corner) extent - punkt reprezentujący szerokość i długość, extent = corner - origin Tworzenie nowego prostokąta: corner: 100 lub 1 extent: Point>>corner: aPoint ^Rectangle origin: self corner: aPoint Rectangle>>extent ^self self height Rectangle>>height ^corner y - origin y Rectangle>>extent: newExtent corner := origin + newExtent

OOPSmalltalk for Wndows- Grafika, Windows6 Rectangle cd Prostokąt zawiera piksle, które są w środku tak, jakby prostokąt był umieszczony pomiędzy pikslami: 1 corner: 3 origin - zawsze w środku corner - zawsze na zewnątrz Rectangle>>containsPoint: aPoint ^origin <= aPoint and: [aPoint < corner]

OOPSmalltalk for Wndows- Grafika, Windows7 Rectangle cd center daje punkt środkowy bottom daje współrzędną y dolnego rogu (podobne top, left, right) containsPoint: aPoint sprawdza, czy punkt należy do prostokąta moveBy: delta przesuwa prostokąt expandBy: delta daje powiększony prostokąt insetBy: delta daje zmniejszony prostokąt translateBy: delta daje nowy prostokąt delta - liczba lub punkt Np. 20 corner: 30) expandBy: 5 daje: 15 corner: 35)

OOPSmalltalk for Wndows- Grafika, Windows8 Obiekty tej klasy przechowują obraz graficzny. Mapa bitowa jest tablicą bitów reprezentującą obraz graficzny. Object GraphicsTool Brush Font Image Bitmap Icon Menu Pen "Ręczne stworzenie bitmapy" f := Bitmap displayCompatibleWithExtent: 50. "Wyświetlanie bitmapy w lewym górnym rogu ekranu (nie okna)" f drawOn: Canvas forDisplay at: extent: f drawOn: Canvas forDisplay f drawOn: Canvas forDisplay at: Bitmap i Image

OOPSmalltalk for Wndows- Grafika, Windows9 Bitmap i Image "Wyrysowanie bitmapy z pliku" "... gdy znamy absolutną ścieżkę, albo zadowala nas ścieżka względem naszego programu" ImagePresenter show: 'Basic image' on: (Bitmap fromFile:'c:\windows\kawa.bmp') "... gdy chcemy liczyć ścieżkę względem katalogów systemowych" ImagePresenter show: 'Basic image' on: (Bitmap fromFile: (File composePath: SessionManager current windowsDirectory subPath: 'kawa.bmp') usingLocator: FileLocator absolute)

OOPSmalltalk for Wndows- Grafika, Windows10 Pożyteczne drobiazgi MessageBox notify: wyświetla podany napis-powiadomienie i OK MessageBox notify: caption: j.w. ale podajemy też nagłówek okna MessageBox confirm: wyświetla podane zapytanie oraz Tak i Nie, wynikiem jest true lub false w zależności od tego co zrobi użytkownik (nie może zamknąć okna) MessageBox confirm: caption: j.w. ale podajemy też nagłówek okna Prompter prompt: caption: Pobieramy napis od użytkownika Time now hours Bieżąca godzina

OOPSmalltalk for Wndows- Grafika, Windows11 Proste rysowanie w oknie Object View ContainerView ShellView "tu podczepiamy własne podklasy" HelloWorld HelloWorld class>>show self new show HelloWorld>>onPaintRequired: aPaintEvent | canvas rect | canvas := aPaintEvent canvas. rect := self clientRectangle. canvas pen: Pen red; brush: (Brush color: Color darkBlue); ellipse: rect; setTextColor: Color white; setBkMode: TRANSPARENT; text: 'Hello from Dolphin' at: rect center - 10).

OOPSmalltalk for Wndows- Grafika, Windows12 Proste rysowanie w oknie cd onPositionChanged: aPositionEvent Obsłuż zdarzenie zmiany pozycji okna (przesunięcie lub zmiana rozmiaru). aPositionEvent isResize ifTrue: [self invalidate]. ^super onPositionChanged: aPositionEvent onLeftButtonPressed: aMouseEvent super onLeftButtonPressed: aMouseEvent. Jakaś dodatkowa akcja minExtent ^self defaultExtent // 2 Ciekawe efekty (np. przy częściowym zasłanianiu i odsłanianiu okienka daje zmiana ustawiania pędzla w onPaintRequired na: brush: (Brush color: (Color fromInteger: ((r next * ) rounded))); gdzie r jest obiektem klasy Random

OOPSmalltalk for Wndows- Grafika, Windows13 Przykład - graf Będziemy chcieli narysować graf. Do klasy NetworkNode dodajemy atrybut position: Object subclass: #NetworkNode instanceVariableNames: 'name position' classVariableNames: '' poolDictionaries: '' drawWith: aPen "Rysuje węzeł grafu z kółkiem dookoła nazwy | minor major | major := (SysFont stringWidth: name) + 16 // 2. minor := SysFont height + 16 // 2. aPen setTextAllign: TaTop; place: position; ellipseFilled: major minor: minor; centerText: name name: aString position: aPoint "Ustawia nazwę i pozycję odbiorcy." name := aString. position := aPoint position ^position nazwa

OOPSmalltalk for Wndows- Grafika, Windows14 Do klasy Network dodajemy: draw Rysuje graf. Dla każdego węzła rysuje linię do niego prowadzącą, a następnie węzeł. Pamięta odwiedzone wierzchołki | visited pen | pen := (Window turtleWindow: Graf) pen. pen erase. wypełnia pióro kolorem visited := Set new. pen drawRetainPicture: [ connections keys do: [ :nodeA | visited add: nodeA. (connections at: nodeA) do: [ :nodeB | (visited includes: nodeB) ifFalse: [ pen place: nodeA position; goto: nodeB position] ]. nodeA drawWith: aPen ] ] Użycie: N1 := NetworkNode new name: 'one' position: 100. N2 := NetworkNode new name: 'five' position: 185. N3 := NetworkNode new name: 'three' position: 120. N4 := NetworkNode new name: 'four' position: 50. Net connect: N1 to: N2; connect: N2 to: N3; connect: N4 to: N2; connect: N1 to: N3. Cztery Trzy Jeden Dwa