Tajemnice ATARI

Program PROJEKTOR
czyli ALE KINO!


Artykuł sponsoruje POKE 89

    W pewnym radzieckim kołchozie odbywa się pokaz filmowy. Pierwszy w tym rejonie, więc nic dziwnego, że niewielka izba aż trzeszczy w szwach. Nieprawdopodobna duchota, błyszczące oczy wpatrzone w ruchome obrazki, terkot projektora, z którego obraz próbuje przebić się przez zawiesinę machorkowego dymu - normalka. Nagle - wrzawa, śmiechy i kilkanaście czapek ląduje na brudnej i pomiętej płachcie ekranu. Sala pustoszeje. "Ludzie, co jest?" - operator łapie za rękaw któregoś z wychodzących. "Panie - słyszy - od razu podejrzewaliśmy, że to jakaś lipa! Kareta jedzie do przodu, a koła kręcą się do tyłu!"

   Minęło parę ładnych lat, a ekranowe koła tak jak dawniej kręcą się czasami w stronę przeciwną do kierunku jazdy. Dlaczego? Przeprowadziłem ankietę, a jej wynik jest straszny! Na kilkudziesięciu ludzi (od 2-tygodniowego niemowlaka do 80-letnlego staruszka) tylko kilku umiało wyjaśnić to zjawisko. Co to znaczy? Przenosząc wyniki z próbki reprezentatywnej na całość badanej populacji (przepraszam, ale ci od statystyki tak to nazywają) okazuje się, że prawie 100 lat od wynalezienia kinematografu ponad 30 milionów Polaków nie wie, dlaczego czasami filmowe koła kręcą się przeciwnie do kierunku jazdy! Patrzcie, młodzi, do czego doprowadził komunistyczny system oświatowy - żeby tyle lat utrzymywać ludzi w niewiedzy. Ale teraz mamy wolną prasę. Wyjaśnię więc, dlaczego Pan Hrabia jedzie do przodu, a koła kręcą się do tyłu.

   Układ oko-mózg to nie ultraszybka kamera i jeśli coś wydarzy się w czasie krótszym, niż ok. 0,05 sekundy, to nasza świadomość zachowa się tak, jakby tego nie było. Oczywiście, oko pokaże odpowiedni obraz, ale to tylko bezmyślna galaretka - taki tam sobie półautomatyczny skaner (przepraszam poetów, malarzy i aktualnie zakochanych). Wprawdzie niejaki Freud wymyślił, że człowiek ma coś tam jeszcze oprócz świadomości - taki obszar poniżej RAM (przepraszam psychiatrów, surrealistów i aktualnie pijanych) - ale o tym, co widzi podświadomość, może innym razem. Jeśli pokażemy więc naszemu oku serię obrazów z tak dobraną prędkością, aby ich zmiana nie trwała dłużej, niż wspomniane wyżej 0,05 sek., to co wyjdzie? Tak, tak - wyjdzie kino.

   Właśnie - kino! Przenieśmy się więc na plan zdjęciowy. Oto nagrywana jest filmowa wersja 725 odcinka Dynastii. W wiejskiej posiadłości Blake'a jego dziewiąte dziecko odbywa przejażdżkę niewielkim powozem. Filmowa kamera kwantuje ruchomy obraz (przepraszam fizyków, rzeźników i aktualnie będących w szkole), utrwalając go ze stałą prędkością w kolejnych klatkach taśmy. Powóz dojeżdża do kamery i tu powożący tnie batem konia. Pojazd przyspiesza. Jeszcze tylko najazd kamery na oddalającą się bryczkę i słychać "Ok, koniec na dzisiaj!".

   Zobaczmy co stało się w momencie, gdy powożący "włączył turbo". Każde porządne koło ma szprychy. Wychodzą one z centralnego punktu koła, tworząc miedzy sobą jednakowe kąty. Jeśli powóz porusza się ze stałą, niewielką prędkością, to szprychy będą w kolejnych kadrach filmu obrócone zawsze o niewielki, stały kąt, co da przy wyświetlaniu wrażenie płynnego obrotu w kierunku jazdy. Jeśli jednak pojazd przyspieszy, to zwiększy się również kąt obrotu szprych na daną jednostkę czasu. Spowoduje to pewne zamieszanie w naszej ekranowej obserwacji. Powinna być tu teraz seria poglądowych rysunków, ale do licha! - czy nie jest to przypadkiem czasopismo komputerowe?

   Program PROJEKTOR wyjaśni wiele, ale najpierw poeksperymentujmy! Zdaję sobie sprawę, że w ostatnich latach wszelkie eksperymentowanie nie ma na ogół dobrych skutków - a to doświadczalne sprawdzanie, jak zachowa się XIX-wieczny kapitalizm w państwie końca XX wieku (przepraszam ministrów, biznesmenów i aktualnie bezrobotnych), to znów jakieś "gorące termojądrowe fuzje" z zimną Coca-Colą na stole, że nie wspomnę eksperymentów facetów z Czarnobyla, sprawdzających "jak długo dynamo da prąd, kiedy nie naciskamy już na pedała". Jednak poeksperymentujmy! Weź, drogi Czytelniku, talerz, szklankę wody i jakiś kroplomierz. Podejdź teraz do telewizora, włącz go, wybierz kanał bez żadnej audycji i wszystkie potencjometry poza głośnością przesuń "na full". Teraz przed samym ekranem wypuszczaj równomiernie krople wody. To, co zobaczysz, będzie przypominało niektóre teledyski z MTV - fajne, ale "tak daje po oczach, że długo nie popatrzy".

   Zawieszone w powietrzu kropelki są efektem stroboskopowego zachowania się lampy kineskopowej (oświetla ona lecącą kroplę nie w sposób ciągły, lecz równomiernymi błyskami - ok. 20 na sekundę), dlatego przed ekranem widzimy sznur pojedynczych kropli z coraz większymi odstępami - bo to ruch jednostajnie przyspieszony, co wiadomo już od czasów eksperymentów Galileusza na krzywej wieży w Pizie (przepraszam wstydliwych i aktualnie bez dziewczyny). Jeśli teraz nie zmieniając położenia ręki ściśniemy zakraplacz nieco bardziej, to wypuścimy zeń w tym samym czasie więcej kropli, aniżeli poprzednio. Krople miast pojawić się w znanych już nam miejscach przedekranowej przestrzeni, pojawią się nieco wyżej. To, co zobaczymy, będzie paradoksalne, wyda się nam bowiem, że krople wędrują z dołu do góry, tak jak na telewizyjnych powtórkach. I to wyjaśnia zjawisko "zbzikowanych kół": przyspieszająca kareta powoduje, że ekranowe szprychy nie trafiają na swoje miejsce, lecz tuż przed nim odbierzemy to jak obrót koła w drugą stronę.

   Teraz dwa słowa o programie. Najpierw to, co widać - oto na górskiej łące pilot rozgrzewa śmigłowiec. Dwa podstawowe pytania, jakie zapewne pojawią się u części Czytelników, którzy uruchomią ten program, będą takie: skąd on wziął takie ładne góry i dlaczego nie ma ich na całym ekranie? Skromność to zapewne dobra cecha, ale co mi tam - te góry są naprawdę niezłe! Wszystko to dlatego, żeby pokazać jednym, a przypomnieć drugim o zapomnianej nieco grafice 9. Jest ona (podobnie, jak 10) godna uwagi choćby dlatego, że można tu bezpośrednio wykorzystywać 15 kolorów (w GR. 10 - 9 kolorów) przy niezłej rozdzielczości 80x160.

   Wróćmy do drugiego pytania - dlaczego nie na całym ekranie? Problem kręcących się kół był między innymi pretekstem do pokazania pewnego sposobu komputerowej animacji, nazywanej często techniką "przewracanych kartek". Wśród czytelników TA jest zapewne ogromna rzesza ludzi młodych, rozpoczynających dopiero swoje zmagania z komputerem. Nadużywany przez nich sposób animacji "COLOR 1, narysuj, COLOR 0, zmaz" z powodu swej szybkości prowadzi do nerwic i moczenia nocnego. Tymczasem bardzo często animowany obraz ma przedstawiać zjawisko cykliczne, które można rozłożyć na regularnie powtarzające się fazy. Tak, Jak kinowy obraz zapisany jest w poszczególnych klatkach filmu, tak i my możemy stworzyć serię obrazów, zapisując je w pamięci komputera i wyświetlać "w kółko" z dobraną przez nas kolejnością. Tu również występuje problem szybkości, ale z krańcowo innego powodu - jest ona najczęściej tak duża, że musimy wprowadzać do programu pętlę spowalniającą. Jako, że nie ma na świecie nic doskonałego (przepraszam idealistów i aktualną Miss Polonia), tak i nasza metoda animacji ma swoje wady. Pierwsza, to niewielka liczba możliwych do przygotowania obrazów, zaś drugi mankament, to fakt, że w trybach o większej rozdzielczości nie zawsze możliwe jest bezpośrednie tworzenie rysunku na całym ekranie. Nie będę dokładnie opisywał wymienionej tu metody animacji, gdyż podręczniki programowania robią to obszernie i wyczerpująco (zob. również TA, np. 3, 6/91), zaś tym, którzy chcieliby już teraz poeksperymentować, proponuję oprzeć się na wyróżnionych liniach programu PROJEKTOR - stanowią one istotę algorytmicznej konstrukcji techniki przewracanych kartek.

   Wróćmy jeszcze do programu; nasz helikopter rozgrzewa się z trzema różnymi prędkościami obrotu śmigieł, które będę tu nazywał "biegami". Na 1 biegu śmigła główne obracają się o 9 stopni i daje to wrażenie w miarę płynnego ruchu. Bieg II, to obrót o 18 stopni, co przy 45-stopnlowym kącie pomiędzy łopatami powoduje już pewne kłopoty z określeniem kierunku obrotu, zaś przejście na III bieg w pełni ilustruje omawiane zjawisko. Tutaj śmigła obracają się o 27 stopni na klatkę, co odbierzemy, jako obrót wirnika w przeciwną stronę.

   Drogi Czytelniku, jeśli któregoś dnia, idąc ulicą zobaczysz, że koła przejeżdżającego pojazdu kręcą się przeciwnie do kierunku jego jazdy, stań i rozejrzyj się uważnie. Może to wszystko dookoła, to rekwizyty poprzedzielane trójwymiarowymi blue-boxami lub tez może Ty sam jesteś częścią jakiegoś programu (kto czytał Snerga lub oglądał TRON, wie o czym mówię). Nieprawdopodobne? Czy nigdy nie doświadczyłeś uczucia, ze to już było, że to już gdzieś widziałeś i przeżyłeś? A widzisz! ONI tam, na GÓRZE też znają metodę "przewracanych kartek"!


5 REM PROGRAM PROJEKTOR
10 GRAPHICS 0:? "GASIMY EKRAN ( NA 1 M
IN.)":FOR W=0 TO 500:SOUND 0,50,12,12:
NEXT W:SOUND 0,0,0,0
15 POKE 752,1:POKE 88,0:POKE 89,65:? C
HR$(125)
20 GRAPHICS 9:DEG :A=129:D=PEEK(560)+2
56*PEEK(561)
25 ALFA=0:BETA=0:DIM B(14),F(59),H(43)
30 POKE 559,0:REM ZGASZENIE EKRANU
40 FOR Q=0 TO 14:READ W:B(Q)=W:NEXT Q
50 FOR G=0 TO 59:READ H:F(G)=H:NEXT G
60 FOR M=0 TO 43:READ P:H(M)=P:NEXT M
70 FOR Z=0 TO 4
80 POKE 89,A:POKE 88,0
90 GOSUB 200:GOSUB 400:ALFA=ALFA+9:BET
A=BETA+18
95 A=A-16:NEXT Z
100 REM WYSWIETLANIE OBRAZOW
105 POKE 559,34:REM WLACZENIE EKRANU
110 FOR KOL=1 TO 4
120 ON KOL GOSUB 140,150,160,150
130 GOSUB 170:NEXT KOL:GOTO 110:REM AN
IMACJA OD POCZATKU
140 REM DANE DO "BIEGU" 1
145 DZ=40:L=0:Q=0:S=2:G=0:DT=20:RETURN 
150 REM "BIEG" 2
155 DZ=20:L=5:Q=60:S=10:G=0:DT=5:RETUR
N 
160 REM "BIEG" 3
165 DZ=30:L=10:Q=30:S=5:G=0:DT=2:RETUR
N 
170 REM GLOWNY PODPROGRAM (LINIA 180 W
YSWIETLA AKTUALNY OBRAZ)
175 FOR Z=0 TO DZ:FOR N=L TO L+4
180 POKE D+5,B(N):POKE D+4,0
185 FOR P=0 TO Q STEP S:SOUND 0,P,12,1
2:NEXT P:SOUND 0,P,12,G
190 FOR T=0 TO DT:NEXT T
195 NEXT N:NEXT Z:RETURN 
200 REM KRAJOBRAZ
210 COLOR 14:PLOT 0,96:POKE 765,14:POS
ITION 0,0:XIO 18,#6,0,0,"S:"
220 FOR J=0 TO 59 STEP 5
230 KOL=F(J):POCZ=F(J+1):KON=F(J+2):Y=
F(J+3):DY=F(J+4)
240 COLOR KOL:FOR X=POCZ TO KON:PLOT X
,96:DRAWTO X,Y:Y=Y+DY:NEXT X:NEXT J
250 COLOR 15:PLOT 30,10:DRAWTO 45,10:D
RAWTO 22,12:DRAWTO 38,12:PLOT 32,15:DR
AWTO 10,16:DRAWTO 25,17
300 REM HELIKOPTER
310 COLOR 10:PLOT 18,90
320 FOR N=0 TO 43 STEP 2:DRAWTO H(N),H
(N+1):NEXT N
330 COLOR 13:FOR Y=72 TO 80 STEP 2:PLO
T 41,70:DRAWTO 22,Y:NEXT Y
340 COLOR 14:Y3=71:Y4=73
350 FOR I=0 TO 8:PLOT 17,Y3:DRAWTO 21,
Y4:PLOT 15,Y3:DRAWTO 11,Y4:Y3=Y3+2:Y4=
Y4+1:NEXT I
360 COLOR 15:DRAWTO 22,77:DRAWTO 40,71
380 RETURN 
400 REM SMIGLA
410 COLOR 15:FOR KAT=ALFA TO ALFA+360 
STEP 45:X1=11*COS(KAT):Y1=7*SIN(KAT):V
=15*COS(KAT):U=10*SIN(KAT)
420 PLOT 16,65:DRAWTO X1+16,Y1+65:DRAW
TO V+16,U+67:NEXT KAT
430 FOR KAT=BETA TO BETA+360 STEP 90:X
2=2*COS(KAT):Y2=6*SIN(KAT):PLOT 40,70:
DRAWTO X2+40,Y2+70:NEXT KAT
440 RETURN 
1000 REM W WIERSZU 1010 SA ADRESY POCZ
ATKOWE KOLEJNYCH OBRAZKOW
1010 DATA 129,113,97,81,65,129,97,65,1
13,81,129,81,113,65,97
2000 DATA 13,10,30,45,-0.2,13,30,60,41
,0.2,13,55,70,50,-2,13,70,79,20,0.5,12
,25,60,50,-0.6,12,60,79,29,1,11
2010 DATA 40,60,55,-0.8,11,60,79,39,0.
3,10,25,50,70,-1,10,50,79,45,0.8,8,0,4
7,10,1.7,6,20,79,92,-0.5
3000 DATA 6,87,8,82,8,75,10,71,12,71,1
3,70,19,70,22,72,40,70,40,73,22,80
3010 DATA 22,85,18,90,23,96,7,96,10,96
,12,90,10,84,13,81,13,72,16,70,16,62

Andrzej Czado



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001