home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 058.lha / WallPaper < prev    next >
Text File  |  1986-11-20  |  3KB  |  98 lines

  1.     ' THIS PROGRAM PLOTS "CHAOTIC ORBITS".
  2.     ' THE INSPIRATION IS A PAPER BY GUMOWSKI AND MIRA: "POINT
  3.     ' SEQUENCES GENERATED BY TWO DIMENSIONAL RECURRENCES " FROM
  4.     ' THE IFIP CONGRESS PROCEEDINGS IN 1974.  A VARIANT OF THIS PROGRAM
  5.     ' BY JOHN LANSDOWN CAN BE FOUND IN A 1979 CREATIVE COMPUTING
  6.     ' ARTICLE ENTITLED "GUMOWSKI"
  7.     ' SIMILAR TYPES OF GRAPHS ARE ALSO SHOWN IN THE SEPT. 1986
  8.     ' COMPUTER RECREATIONS COLUMN OF SCIENTIFIC AMERICAN
  9.     ' RECODED FOR THE AMIGA, MARCH 1986 BY G. LOEGEL AND MADE AVAILABLE
  10.     ' FOR NON-COMMERCIAL DISTRIBUTION
  11.     '
  12.     ' THE FNA(X) AND FNB(Y) DEFINE THE RECURRENCE WITH CONSTANTS
  13.     '  A, B, C, D  THESE CAN BE VARIED FOR DIFFERENT PATTERNS.  THE
  14.     ' PROGRAM CURRENTLY ONLY VARIES C.
  15.     ' N IS THE NUMBER OF POINTS TO PUT IN AN ORBIT AND LC IS THE
  16.     ' NUMBER OF ORBITS TO PLOT.  A SEED VALUE IS RANDOMLY SELECTED
  17.     ' BETWEEN 0 AND MV AND USED TO START THE ORBIT
  18.     ' AN ORBIT IS FINISHED EITHER WHEN N POINTS HAVE BEEN PLOTTED
  19.     ' OR A PREVIOUSLY PLOTTED POINT IS ENCOUNTERED
  20.     ' THE DATA STATEMETS AT THE END ARE THE VALUES USED IN THE
  21.     ' GUMOWSKI PAPER FOR A,B,C,D RESPECTIVELY
  22.     ' ENJOY -GJL
  23.     '
  24.     DEF FNA(X)=C*X+2*X*X*(1-C)/(1+X*X)
  25.     DEF FNB(Y)=D*(1+A+B*Y*Y)*Y
  26.     N=200
  27.     MV=30
  28.     LC=100
  29.     XD=640
  30.     YD=200
  31.     PRINT "ENTER X COORDINATE"
  32.     INPUT "ENTER 0 FOR DEFAULT";XL
  33.     IF XL=0 THEN XL=-25
  34.     PRINT "ENTER Y COORDINATE"
  35.     INPUT "ENTER 0 FOR DEFAULT";YL
  36.     IF YL=0 THEN YL=XL
  37.     XS=-XL
  38.     YS=-YL    
  39.     SCREEN 1,XD,YD,4,2
  40.     WINDOW 1,"2D RECURRENCES",,,1 
  41.     PALETTE 2,.4,.6,1
  42.     PALETTE 1,1,1,1
  43.     PALETTE 0,0,0,0
  44.     PALETTE 3, 1,.73,0
  45.     PALETTE 4, .8,.6,.53
  46.     PALETTE 5,0,.93,.87 
  47.     PALETTE 6,.47,.87,1
  48.     PALETTE 7, .73,.73,.73
  49.     PALETTE 8, .33,.87,0
  50.     PALETTE 9, .73,1,0
  51.     PALETTE 10,.8,0,.93
  52.     PALETTE 11,1,.6,.67
  53.     PALETTE 12,.93,.2,0
  54.     PALETTE 13,1,.87,.73
  55.     PALETTE 14,1,.13,.9
  56.     PALETTE 15,1,1,.13
  57.     A = 0
  58.     B = 0
  59.     D = 1
  60. 160 FOR C=-.9 TO .9 STEP .1
  61.     K=1
  62.     CLS
  63. 190 XI=MV*RND
  64.     XR=RND
  65.     IF XR<.5 THEN XI=-XI
  66.  
  67.     YI=RND
  68.     YR=RND
  69.     IF YR<.5 THEN YI=-YI
  70.     X0=XI
  71.     Y0=YI
  72.     I=0
  73. 280 
  74.     XN=FNB(Y0) + FNA(X0)
  75.     YN=FNA(XN)-X0
  76.     X0=XN
  77.     Y0=YN
  78.     XP=INT(XD*ABS((XN-XL)/(XS-XL)))
  79.     YP=INT(YD*ABS((YN-YL)/(YS-YL)))
  80.     P=(K MOD 14)+1
  81.     IF XP>XD OR YP>YD THEN 420
  82.     IF POINT(XP,YP)=P THEN 420
  83.     IF POINT(XP,YP)<>0 THEN 420
  84.     PSET(XP,YP),P
  85.     I=I+1
  86.     IF I <=N THEN 280
  87. 420 K=K+1
  88.     IF K<LC THEN 190
  89.     NEXT C
  90.     DATA 0,0,-.3,1
  91.     DATA 0,0,.3,1
  92.     DATA 0,0,-.25,1
  93.     DATA 0,0,.25,1
  94.     DATA 0,0,-.2,1
  95.     DATA 0,0,.2,1
  96.     DATA 0,0,-.8,1
  97.     DATA 0,0,.8,1
  98.