MEKİK
Retro bilgisayarBu ay BASIC köşemizde iki küçük programımız var: RENKLER ve MEKİK. Programları her zaman olduğu gibi yine AMIGA BASIC'in liste penceresine yazıp boş bir diskete kaydedin.
Renkler programı çalıştırıldığında, ilginç renk geçiş efektleri yaratacaktır. Hoşlanacaksınız.
Mekik programı, vereceğiniz açı değerlerine göre üç boyutlu mekik çizecektir. Program çalıştırıldığında sizden x, y ve z açılarının değerini ister. Uzay mekiği, vereceğiniz değerlere uygun olarak çizilecektir.

10 WINDOW 1, "Mekik", (0,0)-(631,186), 0
20 X=0:Y=0:Z=0:X3=0:Y3=0:Z3=0:AM=0:BM=0
21 CM=0:DM=0:EM=0:FM=0:GM=0:HM=0:IM=0
25 D=0:P=0:B=0:H=0:U=0:V=0:U1=0:V1=0
30 DIM V(300,3),E(300)
40 COLOR 1,2:CLS
50 READ NV
60 FOR P=1 TO NV
70 READ V(P,1),V(P,2),V(P,3)
80 V(P,1) = .12*V(P,1)
90 V(P,2) = .12*V(P,2)
100 V(P,3) = .12*V(P,3)
110 NEXT P
120 READ NE
130 FOR E=1 TO NE
140 READ E(E)
150 NEXT E
170 D=120
190 INPUT "3 aciyi verin x,y,z: "; P0,P1,P2
210 CLS:pi = 3.1416
220 P= (2*pi) * P0 / 255 - pi
230 B= (2*pi) * P2 / 255
240 H= (2*pi) * P1 / 255
250 GOSUB 390
260 XV = -D * CP * SH: REM —ALTRUTIN—
270 YV = -D * CP * CH
280 ZV = -D * SP
290 REM —NE NOKTALARI—
300 FOR E=1 TO NE
310 X = V(ABS(E(E)),1)
320 Y = V( ABS( E ( E )), 2 )
330 Z = V( ABS( E ( E )), 3 )
340 GOSUB 520
350 IF E(E)>0 THEN LINE( U1*2+75,V1+20 )-( U*2+75,V+20 )
360 U1 = U: V1 = V
370 NEXT E
380 GOTO 190
390 CH = COS(H): SH = SIN(H)
400 CP = COS(P): SP = SIN(P)
410 CB = COS(B): SB = SIN(B)
420 AM = CB * CH - SH * SP * SB
430 BM = -CB * SH - SP * CH * SB
440 CM = CP * SB
450 DM = SH * CP
460 EM = CP * CH
470 FM = SP
480 GM = -CH * SB - SH * SP * CB
490 HM = SH * SB - SP * CH * CB
500 IM = CP * CB
510 RETURN
520 X = X - XV
530 Y = Y - YV
540 Z = Z - ZV
550 X3 = AM * X + BM * Y + CM * Z
560 Y3 = DM * X + EM * Y + FM * Z
570 Z3 = GM * X + HM * Y + IM * Z
580 U = 135 +13.5* D - X 3 / Y 3
590 V = 80-11.5 *D*Z3 Y3
600 RETURN
610 DATA 124
620 DATA 0,-2.2,46.1.5.-2.6,46,2.2,-4.6,46,1.7,-6.5,46,0,-6.7,46
630 DATA -1.7,-6.5.46.-2.2.-4.6,46,-1.5,-2.6,46
640 DATA 0,-.8,43,2.8,-1.5,43,4,-4.5,43,3,-7.2,43,0,-8,43,-3,-7.2,43
650 DATA -4,-4.5,43,-2.8.-1.5,43
660 DATA 0,1.7,38,4.6.0.38,5.8,-4.4,38,4,-8.2,38,0,-9,38,-4,-8.2,38
670 DATA -5.8,-4.4,38,-4.6,0,38
680 DATA 0,4,32.5,4.5.1.32.5,5.8,-4.6,32.5,4,-9,32.5,0,-9.5,32.5,-4,-9,32.5
690 DATA -5.8,-4.6,32.5.-4.5,1,32.5
700 DATA 0,8,26.3,3.5,7,26.3,7.8,2,26.3,8,-7,26.3,0,-9.8,26.3,-8,-7,26.3
710 DATA -7.8,2,26.3,-3.5.7.26.3
720 DATA 0,8,21.5,3.8,7.5,21.5,8,3,21.5,8,-8,21.5,0,-9.8,21.5,-8,-8,21.5
730 DATA -8,3,21.5,-3.8,7.5,21.5
740 DATA 0,8,14,4.7,7,14,8,4,14,8,-8.7,14,0,-10,14,-8,-8.7,14,-8,4,14
750 DATA-4.7,7,14
760 DATA 0,8,4,4.7,7,4,8,4,4,8,-8.7,4,0,-10,4,-8,-8.7,4,-8,4,4
770 DATA -4.7,7,4
780 DATA 0,8,-12,4.7,7,-12,8,4,-12,8,-8.7,-12,0,-10,-12,-8,-8.7,-12,-8,4,-12
790 DATA-4.7,7,-12
800 DATA 0,8,-27.3,4.7,7,-27.3,8,4,-27.3,8,-8.7,-27.3,0,-10,-27.3,-8,-8.7,-27.3
810 DATA -8,4,-27.3,-4.7,7,-27.3
820 DATA 0,8,-35.6,4.7,7,-35.6,8,4,-35.6,8,-8.7,-35.6,0,-10,-35.6,-8,-8.7,-35.6
830 DATA -8,4,-35.6,-4.7,7,-35.6
840 DATA 0,9,-43,2,8.5,-43,8.8,1.5,-43,9,-10,-43,0,-10.8,-43,-9,-10,-43
850 DATA -8.8,1.5,-43,-2,8.5,-43
860 DATA 0,9.5,-48,2,9.3,-48,9.2,1.5,-48,10,-10,-48,0,-10.2,-48,-10,-10,-48
870 DATA -9.2,1.5,-48,-2,9.3,-48
875 DATA 8.7,-8.7,21,15,-8.7,-16,35,-10,-36,35,-10,-40
876 DATA -8.7,-8.7,21,-15,-8.7,-16,-35,-10,-36,-35,-10,-40
877 DATA 0,13,-37,0,33,-60,0,33,-69,0,14,-60
878 DATA 6,11 ,-43,6,11 ,-48,11,5,-43,11,5,-48,-6,11 ,-43,-6,11 ,-48,-11,5,-43
879 DATA-11,5,-48
880 DATA 259
890 DATA -1,2,3,4,5,6,7,8,1 ,-9,10,11,12,13,14,15,16,9,-17,18,19,20,21,22,23,24,17
900 DATA -25,26,27,28,29,30,31,32,25,-33,34,35,36,37,38,39,40,33
910 DATA -41,42,43,44,45,46,47,48,41,-49,50,51,52,53,54,55,56,49
920 DATA -57,58,59,60,61,62,63,64,57,-65,66,67,68,69,70,71,72,65
930 DATA -73,74,75,76,77,78,79,80,73,-81,82,83,84,85,86,87,88,81
940 DATA -89,90,91,92,93,94,95,96,89,-97,98,99,100,101,102,103,104,97
950 DATA -1,9,17,25,33,41,49,57,65,73,81,89,97
960 DATA -2,10,18,26,34,42,50,58,66,74,82,90,98
970 DATA -3,11,19,27,35,43,51,59,67,75,83,91,99
980 DATA -4,12,20,28,36,44,52,60,68,76,84,92,100
990 DATA -5,13,21,29,37,45,53,61,69,77,85,93,101
1000 DATA -6,14,22,30,38,46,54,62,70,78,86,94,102
1010 DATA -7,15,23,31,39,47,55,63,71,79,87,95,103
1020 DATA -8,16,24,32,40,48,56,64,72,80,88,96,104
1030 DATA -44,105,106,107,108,92
1040 DATA -46,109,110,111,112,94
1050 DATA -81,113,114,115,116,89
1060 DATA -82,117,118,-83,119,120
1070 DATA -87,121,122,-88,123,124
1080 DATA -117,119,-121,123,-118,120,-122,124
FOR i!=0 TO 18 STEP .05
x=150*SIN(i!)+160:y=90*COS(ra!*i!)+96
IF z>10 THEN
y1=90*SIN(rari!)+96: x1=150*COS(i!)+160: