home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh4x / sh45a.d64 / trans-2d (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  2KB  |  60 lines

  1. 10 REM ********************************
  2. 20 REM *                              *
  3. 30 REM *      T R A N S - 2 D         *
  4. 40 REM * DEMONSTRATION VON 2D-GRAFIK  *
  5. 50 REM *    HEIMO PONNATH HAMBURG     *
  6. 60 REM *                              *
  7. 70 REM ********************************
  8. 80 IFA=0THENA=1:LOAD"HIRES4.OBJ",8,8
  9. 90 SYS49152:HAN:HOF:REM AKTIVIEREN
  10. 100 REM
  11. 110 REM ---- DATEN DES HAUSES ---------
  12. 120 DATA 10,5,10,12,15,18,20,12,20,5
  13. 130 DIM H(2,6):REM FELD FUER HAUSPUNKTE
  14. 140 FOR I=1 TO 5
  15. 150 :READ H(1,I),H(2,I)
  16. 160 NEXT I
  17. 170 H(1,6)=H(1,1):H(2,6)=H(2,1)
  18. 180 REM
  19. 190 REM ---- PARAMETER ----------------
  20. 200 XM=319:YM=199
  21. 210 XU=0:XO=30:YU=0:YO=25
  22. 220 XC=10:YC=5
  23. 230 PRINTCHR$(147)
  24. 240 INPUT"ROTATIONSWINKEL =";W
  25. 250 W=W*(null)/180:REM UMRECHNUNG IN BOGENMASS
  26. 260 INPUT"SKALIERUNGSFAKTOREN SX,SY=";SX,SY
  27. 270 REM
  28. 280 REM ---- ZEICHENWERTE -------------
  29. 290 ZF=5:HF=0:L=1
  30. 300 REM
  31. 310 REM ---- GESAMTMATRIXELEMENTE -----
  32. 320 RA=XM*SX*COS(W)/(XO-XU):REM DAS IST R11
  33. 330 RB=-YM*SX*SIN(W)/(YO-YU):REM R12
  34. 340 RC=-XM*SY*SIN(W)/(XO-XU):REM R21
  35. 350 RD=-YM*SY*COS(W)/(YO-YU):REM R22
  36. 360 T1=XM*(XC*(1-SX*COS(W))+SY*YC*SIN(W)-XU)/(XO-XU)
  37. 370 T2=-YM*(YC*(1-SY*COS(W))-SX*XC*SIN(W)-YO)/(YO-YU)
  38. 380 REM
  39. 390 REM ---- TRANSFORMATIONSGLEICHUNGEN
  40. 400 DEFFNX(X)=RA*X+RC*Y+T1
  41. 410 DEFFNY(Y)=RB*X+RD*Y+T2
  42. 420 REM
  43. 430 REM ---- ZEICHNEN -----------------
  44. 440 HAN:LOE:FAR,ZF,HF
  45. 450 FOR I=1 TO 5
  46. 460 :X=H(1,I):Y=H(2,I):X1=FNX(X):Y1=FNY(Y)
  47. 465 :X=H(1,I+1):Y=H(2,I+1):X2=FNX(X):Y2=FNY(Y)
  48. 470 :LIN,X1,Y1,X2,Y2,L
  49. 480 NEXT I
  50. 490 GET A$:IF A$="" THEN 490
  51. 500 HOF
  52. 520 REM
  53. 530 REM ---- PROGRAMMENDE -------------
  54. 540 INPUT"NOCH EINMAL (J/N)";A$
  55. 550 IF A$="J" THEN 240
  56. 560 AUS
  57. 570 POKE 52,160:POKE 56,160
  58. 580 CLR
  59. 590 END
  60.