Plotter

From Atariki

Jump to: navigation, search

Grafika:Ace_ploter.gif

Grafika:Rzog_abbuc17_intro_1.gif

Plotter (pol. ploter) to jeden ze starszych i popularnych efektów w demach na różnych platformach sprzętowych. Polega na wyświetlaniu pewnej ilości punktów, tworzących jakiś wzór (okrąg, kulę, sinus, itp.). Taki utworzony obiekt jest zwykle ruchomy, można go czasem kontrolować np. joystickiem (jak w Ace Ploter Magnusa). Przyjęło się, że im więcej punktów w tzw. ramce, tym efekt jest lepszy.

O ile podstawy matematyczne leżące u podstaw powstania tego efekty są dość proste i można tego typu figury rysować używając nawet Atari BASIC, to już stworzenie efektu który będzie rysował dużą ilość punktów z odpowiednią prędkością zapewniającą wrażenie płynności nie jest już zadaniem trywialnym. Scenowi koderzy często rywalizowali między sobą starając się napisać jak najszybsze procedury rysujące punkty na ekranie. Procedura taka jest niejako podstawą do stworzenia "plotera". W magazynie dyskowym Barymag, a dokładniej w pierwszym jego wydaniu, Marcin "Eru" Żukowski zaprezentował artykuł opisujący jego zmagania z opracowaniem jak najszybszej metody rysowania punktów: "Najszybsze Rysowanie Kropek".

Ciekawostki

Nazwa "plotter" pochodzi od angielskiego terminu PLOT oznaczającego technikę wizualizacji zbiorów danych za pomocą zbioru punków, linii, lub innych metod rysowania obiektów reprezentujących i odzwierciedlających zbiór danych wejściowych. W większości języków programowania jest dostępna funkcja najczęściej nazwana PLOT, pozwalająca narysować punkt we wskazanym miejscu ekranu. Książka "Computer Graphics Primer", autorstwa Mitchell Waite, opublikowana w 1979 poświęca całą sekcje jednego rozdziałów książki na zdefiniowanie terminu "plotting".

Odpowiednikiem, a właściwie pierwowzorem plotera w analogowym świecie są tzw. Figury/Krzywe Lissajous. Używając analogowego oscyloskopu można je uzyskać za pomocą pary generatorów generujących fale sinusoidalne o zbliżonych częstotliwościach. Drobne różnice faz obu fal powodują powstawanie wzoru zależnego własnie od różnicy faz tychże sygnałów. Dokładną prezentację figur Lissajous na analogowym oscyloskopie możemy obejrzeć w video zaprezentowanym na kanale Alana Wolke (w2aew): "Basics of Lissajous Patterns on an Oscilloscope".

Poniżej przykład programu napisanego w Atari BASIC symulującego rysowanie figury Lissajous składającej się z 360 punktów. Częstotliwość fali modulującej oś X jest dwukrotnie wyższa niż ta dla osi Y, różnica faz pomiędzy falami jest równa 90 stopni. Patrząc na czas wykonania tego programu (~57 sekund), można wywnioskować ile technik przyspieszających kod i obliczenia musieli zastosować koderzy aby osiągnąć sensowną prędkość oświerzania przy kodowaniu tego typu efektów. Kod w Atari BASIC rysuje 1 klatkę w ciągu 60 sekund, dobrze zakodowany ploter potrafił rysować 50 takich klatek w ciągu jednej sekundy.

10 GRAPHICS 24:DEG :COLOR 1
15 SETCOLOR 2,0,0
20 FOR I=0 TO 359
30 X=95*SIN(I*2)
40 Y=95*SIN(I+90)
50 PLOT 160+X,96-Y
60 NEXT I
99 GOTO 99
Personal tools