Saddle Cosine 1

Developer(s): James Jones
Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Graphics

Pulsating cosine functions.

Content

Appears On

Capital Area Timex Sinclair User Group’s Library Tape.

Related Products

Related Articles

Related Content

Image Gallery

Source Code

    1 REM  this poqram 6.4
    2 REM BORDER 0: PAPER 0: INK 7: CLS : CLS 
    3 CLEAR 31999: LET s=32000: LET r=32050
    4 RESTORE : FOR j=0 TO 11: READ a: POKE s+j,a: NEXT j
    5 FOR j=0 TO 11: READ a: POKE r+j,a: NEXT j
    6 DATA 17,232,128,33,0,64,1,0,27,237,176,201
    7 DATA 17,0,64,33,232,128,1,0,27,237,176,201
    8 LET p=0
    9 GO TO 2000: REM TAKE OUT TO PLOT PICTURES FOR THE FIRST TIME
   10 GO TO 35
   12 REM SADDLECOS
   15 REM by                              James N. Jones                  2242 Locust                     Amarillo, Texas 79109
   20 LET xe=-x*s1+y*c1: LET ye=-x*c1*c2-y*s1*c2+z*s2: LET ze=-x*s2*c1-y*s2*s1-z*c2+rho
   30 LET sx=d*xe/ze+cx: LET sy=cy+d*ye/ze: RETURN 
   35 FOR k=10 TO 40
   38 LET t=PI/4
   40 LET rho=50: LET d=350: LET phi=PI/4: LET cx=127: LET cy=87: LET s1=SIN (t): LET s2=SIN (phi): LET c1=COS (t): LET c2=COS (phi)
   50 DEF FN z(x)=COS (.1*(x*x+y*y))+(x*x-y*y)/(k)
   52 REM LET size=8
   55 REM DEF FN z(l)=4*SIN l
   60 REM color
   70 FOR x=10 TO -10 STEP -.05
   75 REM FOR m=0 TO PI*2 STEP .05
   76 REM LET x=size*COS (1*m): REM LET x=size*SIN l
   77 REM LET z=size*1*COS (2*m)
   78 REM LET y=size*1*SIN (3*m)
   80 LET fl=0
   90 FOR y=-10 TO 10
  100 LET z=FN z(x): GO SUB 20
  105 REM GO SUB 20
  110 IF sx<0 OR sx>255 OR sy<0 OR sy>175 THEN LET fl=0: GO TO 140
  120 IF fl=0 THEN LET l=1: PLOT sx,sy
  123 REM PLOT 127,87: DRAW 127-sx,87-sy
  125 REM LET sx1=sx: LET sy1=sy
  130 REM DRAW (sx1-sx),(sy1-sy)
  140 NEXT y: NEXT x
 1000 LET p=p+1: REM INPUT "Stor as page no. (1-4) ";p
 1010 LET p=INT p: REM IF p<1 OR p>4 THEN GO TO 1000
 1020 LET a=p*7000+26000: LET a2=INT (a/256): LET a1=a-a2*256
 1030 POKE 32001,a1: POKE 32002,a2
 1040 LET n=USR s
 1045 IF p=4 THEN GO TO 2000
 1046 CLS 
 1050 NEXT k
 2000 FOR q=-3 TO 4: REM INPUT "Recall page no. (1-4) ";p
 2010 LET p=INT q: REM IF p<1 OR p>4 THEN GO TO 2050
 2015 LET p=ABS p
 2017 IF p=0 OR q=1 THEN GO TO 2050
 2020 LET a=p*7000+26000: LET a2=INT (a/256): LET a1=a-a2*256
 2030 POKE 32054,a1: POKE 32055,a2
 2040 LET n=USR r
 2045 PAUSE 1
 2050 NEXT q: REM RETURN 
 2060 GO TO 2000
 9000 SAVE "saddlecos1"CODE 32000,30000
 9005 BEEP 1,22
 9006 SAVE "saddlecos1" LINE 1
 9010 BEEP 2,33

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

Scroll to Top