Jeśli lubisz wpatrywać się w ekranu telefonu i nie bolą Cię oczy od odczytywania mikrowiadomości, to dziś dzisiejszy odcinek jest dla Ciebie. Treść w nim zawarta oczywiście nie będzie "z czapy", ale sposób w jaki będziemy prezentować informacje może się wydawać trochę niekonwencjonalny.
Gdyby Picasso żył dziś, albo gdyby komputery były szerzej dostępne za jego czasów, to zamiast się męczyć malowałby pewnie zwykłe obrazy, skanował, nakładał filtr pixelize w programie graficznym i drukował. My dziś mamy taką możliwość, więc pobawimy się w malarzy. W tym odcinku każdy będzie Pixasso.
Brzdąkałeś kiedyś na linijce opartej o krawędź biurka? Dziś będziesz mieć okazję do efektów audio dodać efekty wideo oparte na podobnej zasadzie. Też będziemy brzdąkać na czymś elastycznym, podobnym do linijki. Być może obiło Ci się o uszy hasło "krzywa Béziera". Nie będziemy wnikać w jej podstawy matematyczne, lecz wykorzystamy wprost jej właściwości. Ta krzywa (inaczej spline) przypomina właśnie naszą linijkę, albo jeszcze lepiej listewkę ratanu przeplataną przez gałązki wikliny. Końcówki listewki mocujemy na stałe, natomiast gałązki wikliny powodują odkształcenie elastycznej listewki (w krzywej te wszystkie punkty nazywa się punktami kontrolnymi).
Jesień jest idealną porą na ogrodowe porządki. Przesadzanie i sadzenie. Będziemy sadzić, ale aby nie przesadzić. Nie przesadzić z rekurencją, bo ta będzie nam dziś towarzyszyć. Tym razem o fraktalu bezimiennym, choć w naturze często podpisywanym na korze inicjałami imion i serduszkiem. Bezimiennym, ale równie atrakcyjnym, a być może nawet bardziej niż ostatnio opisywany fraktal Pana Sierpińskiego.
Wbrew pozorom dzisiejszy wpis nie będzie uczył technik samoobrony, nie będzie też kursem lutowania online. Pokażę Ci jak od środka działają popularne funkcje dostępne w programach graficznych, jak negatyw, rozjaśnianie czy posteryzacja. Opierają się na jednopunktowych operacjach graficznych. Jednopunktowych, bo wpływ na wartość wynikowego punktu obrazu, ma wartość tylko jednego punktu obrazu źródłowego.
Operację taką można opisać równaniem: w(x,y)=F(z(x,y)), gdzie x, y, to współrzędne obrazu, z obraz źródłowy, a w obraz wynikowy. F to operacja jednopunktowa.
Pracując z elementem CANVAS spotykam się często z dwoma zagadnieniami: pobrania koloru piksela i kreślenia piksela. Jeśli chodzi stawianie punktu, to zazwyczaj spotykamy się z następującą metodą:
Z zmiennej ctx mamy obiekt RenderingContext pozwalający na dostęp przez dwie współrzędne (stąd parametr '2d'). Punkt stawiamy poprzez nakreślenie wypełnionego prostokąta o wymiarach 1x1 (parametr 3 i 4) na współrzędnych 100,100 (parametr 1 i 2). Wcześniej ustawiliśmy kolor czerwony dla wypełnienia. Domyślny kolor wypełnienia to czarny, a domyślny kolor tła CANVAS to biały. I ta metoda oczywiście się sprawdza, ale niekoniecznie przy dynamicznych efektach na CANVAS, kiedy potrzebujemy postawić tych punktów tysiące lub dziesiątki tysięcy.