LOFI Blocks – RYSOWANIE – podstawy

LOFI Blocks to aplikacja do nauki podstaw programowania i robotyki z wykorzystaniem Arduino. niniejsza seria filmów video prezentuje moduł RYSOWANIA umożliwiający generowanie różnego rodzaju wizualnych efektów.

Wstęp – omówienie poszczególnych bloków

Pełną dokumentację poszczególnych bloków znaleźć można w dziale DOKUMENTACJA aplikacji, w zakładce RYSOWANIE.

Układ współrzędnych

OTWORZ PRZYKAD Z FILMU VIDEO

Wszystkie parametry w aplikacji LOFI Blocks wyrażane są w zakresie od 0 do 100. Podobnie jest też z polem do rysowania, którego rozmiar to 100 na 100 jednostek. Aby precyzyjnie poruszać się po polu do rysowania położenie każdego punktu określamy przy pomocy dwóch współrzędnych poziomej – X oraz pionowej – Y.

Powszechnie przyjmuje się, że opisując obiekty na ekranie monitora współrzędna pionowa SKIEROWANA JEST W DÓŁ czyli lewy-górny róg pola do rysowania ma współrzędne X = 0, Y = 0, natomiast prawy-dolny róg pola do rysowania ma współrzędne X = 100, Y – 100

Odświeżanie ekranu

Odświeżanie ekranu to jedna z właściwości rywosania w LOFI Blocks, która nie jest intuicyjna, szczególnie jeśli przyzwyczailiśmy się do sposobu działania rysowania np. w Scratchu. Niepożądane “rozmazywanie się” rysowanych elementów może z początku wydawać się dziwne i wyglądać jak jakiś błąd w programie dlatego istotne jest zrozumienie, że pole do rysowania w LOFI Blocks działa bardzo podobnie jak każdy ekran komputera, który też musi być odświeżany (choć na codzień tego nie dostrzegamy).

Jeśli narysujemy jakiś obiekt na polu do rysowania pozostanie on na nim do momentu aż nie zamalujemy go innym obiektem. Dlatego jeśli narysujemy np. prostokąt, a następnie zmienimy jego pozycję zobaczymy, że prostokąt pojawił się w nowym miejscu ale jego ślad pozostał też w miejscu, w którym był wcześniej.

Żeby animowane obiekty nie pozostawiały po sobie “rozmazujących się śladów” na początku każdego odtworzenia pętli RYSUJ, musimy odświeżyć ekran, wyczyścić go np. zamalowując cały na biało przy pomocy protstokąta zakrywającego całą powierzchnię pola do rysowania.

Kolory RGB

Tryb RGB (Red Green Blue) to jeden z najpopularniejszych sposobów opisywania kolorów. Wynika ona bezpośrednio z konstrukcji ekranów ledowych, które jeśli popatrzymy na nie przez lupę okazują się złożone z szeregu czerwonych, zielonych i niebieskich diód led.

Każdy z kolorów określany jest więc przez mieszankę proporcji trzech kolorów podstawowych, do których dochodzi dodatkowo parametr ALPHA czyli przezroczystość, gdzie 0 to przezroczystość całkowita (obiekt jest niewidoczny) a 100 to brak przezroczystości (obietk jest w pełni widoczny)

Obracanie i transformacje

Na pierwszy rzut oka funkcja obracania wydaje się działać niezbyt intuicyjnie i faktycznie jeśli obracamy tylko jeden obiekt dodatkowe określanie środka ciężkości wydaje się zbędne. Sytuacja zmienia się jeśli chcemy obracać więcej obiektów względem jednego punktu, wówczas logiczne okazuje się, że wpierw musimy ustalić położenie punktu obrotu a dopiero potem względem niego przesuwamy obiekty wewnątrz funkcji OBRÓT.

PRZYKŁADY

Trochę skomplikowanej technologii (dla zainteresowanych)

Aplikacja LOFI Blocks jest napisana w językach programowania Javascript, HTML i CSS i naturalnym krokiem w rozwoju wydaje nam się uczenie programowania w tych właśnie językach.

Moduł RYSOWANIA w LOFI Blocks stworzony jest na bazie technologii CANVAS powszechnie wykorzystywanej w tworzeniu aplikacji opartych o HTML5. W praktyce poszczególne bloki były projektowane tak by jak najmniej odbiegały od standardowych instrukcji języka Javascript wykorzystywanych przez CANVAS.

Zobacz CIEKAWE PRZYKŁADY efektów jakie można osiągnąć przy pomocy obiektu HTML CANVAS.

W praktyce nauka rysowania w LOFI Blocks może być potraktowana jako wstęp do nauki programowania w języku Javascript z wykorzystaniem technologii CANVAS.

Ciekawym rozwinięciem nauki programowania w LOFI Blocks może być również nauka programowania w środowisku p5.js

O autorze scenariusza:

Maciej Wojnicki

Maciej Wojnicki

Projektant, konstruktor, programista, twórca LOFI Robota - edukacyjnego systemu do nauki robotyki i programowania dla dzieci w każdym wieku. Pomysłodawca i współzałożyciel pierwszego w Polsce Fab Labu (Trójmiasto) - otwartej pracowni szybkiego prototypowania i cyfrowej fabrykacji, zrzeszonej w międzynarodowej sieci podobnych instytucji.