The Museum of HP Calculators

HP Forum Archive 19

[ Return to Index | Top of Index ]

Belated Valentine's Day Fun
Message #1 Posted by Egan Ford on 15 Feb 2009, 12:36 p.m.

I do not recall where I found this, and I was too busy to post before Valentine's Day:

r=|tan(t)|1/|tan(t)|
Sage output:
r=polar_plot(lambda t:abs(tan(t))^(1/abs(tan(t))),0,pi)
r.show(ymin=0,ymax=1.5,xmin=-0.75,xmax=0.75,figsize=[5,5])

50g output:

Edited: 15 Feb 2009, 4:01 p.m. after one or more responses were posted

      
Re: Belated V-day Fun
Message #2 Posted by Mike (Stgt) on 15 Feb 2009, 2:30 p.m.,
in response to message #1 by Egan Ford

V-day? It seems there are different meanings of V-day. Ciao.....Mike

            
Re: Belated Valentine's Day Fun
Message #3 Posted by Egan Ford on 15 Feb 2009, 4:02 p.m.,
in response to message #2 by Mike (Stgt)

Valentine's Day. Ambiguity removed (above).

Edited: 15 Feb 2009, 4:30 p.m.

      
Re: Belated V-day Fun
Message #4 Posted by Marcus von Cube, Germany on 15 Feb 2009, 3:35 p.m.,
in response to message #1 by Egan Ford

On my Mac... This is the built in Grapher app. I din't find an option to restrict the range for theta, therefore the two part formula.

            
Re: Belated V-day Fun
Message #5 Posted by Gerson W. Barbosa on 18 Feb 2009, 11:32 a.m.,
in response to message #4 by Marcus von Cube, Germany

Quote:
On my Mac...

On Apple II it would look like this:

AppleWin: free

Writing your own equation plotter program: priceless!

Not a competitor to Graphmatica though :-)

Regards,

Gerson.

 
-----------
10  REM  ** GRAFICOS BIDIMENSIONAIS **
20  REM  ** GERSON WASHISKI BARBOSA **
30  REM  **** CURITIBA,  28/12/86 ****
40  FOR I = 32768 TO 32845: READ P: POKE I,P: NEXT 
50  TEXT : HOME : VTAB 8: PRINT "- PARA FUNCOES EM COORDENADAS CARTE-": PRINT "  SIANAS, DIGITE Y=F(X) NA LINHA 260.": HTAB 1: VTAB 12: PRINT "- PARA FUNCOES EM COORDENADAS POLA-": PRINT "  RES, DIGITE R=F(T) NA LINHA 350."
60  HTAB 7: VTAB 16: PRINT "EM SEGUIDA, DIGITE <RUN70>": HTAB 12: VTAB 17: PRINT "E TECLE <RETURN>.": GOTO 740
70  HOME : HGR : HCOLOR= 3: GOSUB 6000
80  HPLOT 0,0 TO 278,0 TO 278,159 TO 0,159 TO 0,0
90  HOME : VTAB 23: INPUT "MX, DX, MY, DY: ";MX,DX,MY,DY
100  IF DX >  = 21 THEN NR = MX / 21: GOSUB 6500:DX = NR
120  GOSUB 3500
130 M = 765:N = MX: GOSUB 1000:N = DX: GOSUB 1000:N = MY: GOSUB 1000:N = DY: GOSUB 1000
140  IF F1 THEN 160
150 FY = 159 / MY
160 H = 0:V = 0: GOSUB 4000
170  VTAB 23: INPUT "CX, CY: ";H,V
180  IF V < 0 OR V > MY OR H < 0 OR H > MX THEN 170
190  GOSUB 4500: GOSUB 4000
200 N = H: GOSUB 1000:N = V: GOSUB 1000
210  IF LT$ = "P" OR LT$ = "p" THEN 310
220  HTAB 1: VTAB 23: PRINT  SPC( 40);: VTAB 23: INPUT "X1, X2: ";X1,X2
230  IF X1 <  - H OR X2 > MX - H THEN 220
250  FOR X = X1 TO X2 STEP 1 / FX
260 Y =  SIN (X)
270  IF FY * (V - Y) < 0 OR FY * (V - Y) > 170 THEN 290
280  HPLOT FX * (H + X),FY * (V - Y)
290  NEXT 
300  GOTO 400
310 K =  ATN (1) / 45
320  HOME : VTAB 23: INPUT "A1, A2: ";A1,A2
330 A1 = K * A1:A2 = K * A2
340  FOR T = A1 TO A2 STEP .02
350 R =  ABS ( TAN (T)) ^ (1 /  ABS ( TAN (T)))
360 X = R *  COS (T):Y = R *  SIN (T)
370  IF FY * (V - Y) < 0 OR FY * (V - Y) > 159 OR FX * (H + X) > 278 THEN 390
380  HPLOT FX * (H + X),FY * (V - Y)
390  NEXT 
400  POKE 32846,0
405  HOME : VTAB 22: PRINT "DH: ";DX; TAB( 18)"DV: ";DY
410  VTAB 23: PRINT "OUTRO GRAFICO? / QUADRICULAR? <S,N,Q> ";
420  GET OP$
430  IF OP$ = "N" OR OP$ = "n" THEN  TEXT : GOTO 740
440  IF (OP$ = "S" OR OP$ = "s") AND  PEEK (32846) = 255 THEN  CALL 32785: GOTO 490
450  IF (OP$ = "S" OR OP$ = "s") AND  PEEK (32846) = 0 THEN 490
460  IF (OP$ = "Q" OR OP$ = "q") AND  PEEK (32846) = 0 THEN  CALL 32768: GOSUB 5000: GOTO 480
470  IF (OP$ = "Q" OR OP$ = "q") AND  PEEK (32846) = 255 THEN  CALL 32785: FOR T = 1 TO 250: NEXT 
480  GOTO 420
490  GOSUB 6000: HOME : VTAB 23
500  IF LT$ = "C" THEN  POKE 32847,0: GOTO 520
510  POKE 32847,1
520  PRINT "OUTRA FUNCAO? <S,N> ";
530  GET L$
540  IF L$ = "N" OR L$ = "n" THEN F2 = 1: GOTO 605
550  IF L$ <  > "S" AND L$ <  > "s" THEN 530
560 M$ = ")   <RUN600> <RETURN>"
570  HOME : VTAB 23
580  IF LT$ = "P" OR LT$ = "p" THEN  PRINT "350 R=F(T";M$: GOTO 740
590  PRINT " 260 Y=F(X";M$: GOTO 740
600  HTAB 1: VTAB 23: PRINT  SPC( 40)
605  IF  PEEK (32847) = 0 THEN LT$ = "C": GOTO 620
610 LT$ = "P"
620  HOME : VTAB 23: PRINT "MESMO QUADRO? <S,N> ";
630  GET L$
640  IF L$ = "N" OR L$ = "n" THEN  HGR : GOTO 80
650  IF L$ <  > "S" AND L$ <  > "	s" THEN 630
660  HOME : VTAB 23: PRINT "MESMAS COORDENADAS? <S,N> ";
670  GET L$
680  IF L$ = "N" OR L$ = "n" THEN 90
690  IF L$ <  > "S" AND L$ <  > "s" THEN 670
700  IF F2 THEN 210
710  HOME :M = 762: GOSUB 2500:MX = N: GOSUB 2500:DX = N: GOSUB 2500:MY = N: GOSUB 2500:DY = N: GOSUB 2500:H = N: GOSUB 2500:V = N: GOSUB 3500
720  IF F1 THEN 210
730 FY = 159 / MY: GOTO 210
740  END 
1000 NI =  INT (N): GOSUB 1500
1010 NI = (N -  INT (N)) * 1E7: GOSUB 1500
1020  RETURN 
1500 M = M + 3
1510  FOR I = 0 TO 2
1520 NI = NI / 256 ^ (2 - I): POKE M + I,NI:NI = (NI -  INT (NI)) * 256 ^ (2 - I)
1530  NEXT 
1540  RETURN 
2500 N = 0:M = M + 9: GOSUB 3000
2510 N = N / 1E7:M = M - 3: GOSUB 3000
2520  RETURN 
3000  FOR I = 0 TO 2
3010 N = N +  PEEK (M + I) * 256 ^ (2 - I)
3020  NEXT 
3040  RETURN 
3500 F1 = 0:FX = 278 / MX
3510  IF MY = 0 THEN F1 = 1:MY = 159 / FX:FY = FX
3520  IF MY / DY > 13 THEN NR = MY / 13: GOSUB 6500:DY = NR
3530  HOME : VTAB 22: PRINT "DH: ";DX; TAB( 18)"DV: ";DY
3540  RETURN 
4000  HPLOT FX * H,0 TO FX * H,159: HPLOT 0,FY * V TO 278,FY * V: GOSUB 5500
4010  RETURN 
4500  HCOLOR= 0
4510  FOR I = DY TO MY STEP DY
4520  IF  INT (FY * I) = 0 OR  INT (FY * I) = 159 THEN 4540
4530  HPLOT 1,FY * I TO 3,FY * I
4540  NEXT 
4550  FOR I = TX TO MX STEP DX
4560  IF  INT (FX * I) = 0 OR  INT (FX * I) = 278 THEN 4580
4570  HPLOT FX * I,1 TO FX * I,2
4580  NEXT 
4590  HCOLOR= 3
4600  RETURN 
5000  FOR I = DY TO MY STEP DY
5010  IF  INT (FY * I) = 0 OR  INT (FY * I) = 159 THEN 5030
5020  HPLOT 0,FY * I TO 278,FY * I
5030  NEXT 
5040  FOR I = DX TO MX STEP DX
5050  IF  INT (FX * I) = 0 OR  INT (FX * I) = 278 THEN 5070
5060  HPLOT FX * I,0 TO FX * I,159
5070  NEXT 
5090  RETURN 
5500 D = 2
5510  IF H = 0 THEN D = 0
5520  FOR I = 0 TO MY STEP DY
5530  HPLOT FX * H - D,FY * I TO FX * H + 2,FY * I
5540  NEXT 
5550 D = 2
5560  IF V = 0 THEN D = 0
5570  FOR I = 0 TO MX STEP DX
5580  HPLOT FX * I,FY * V - D TO FX * I,FY * V + 2
5590  NEXT 
5600  RETURN 
6000  HOME : VTAB 23: PRINT "COORDS. CARTESIANAS OU POLARES? <C,P> ";
6010  GET LT$
6020  IF LT$ <  > "C" AND LT$ <  > "c" AND LT$ <  > "P" AND LT$ <  > "p" THEN 6010
6030  RETURN 
6500 F3 = 0
6510  IF  INT (NR) = 0 THEN F3 = 1:NR = NR * 1E7
6520 X =  INT ( LOG (NR) /  LOG (10))
6530 NR = NR / 10 ^ X
6540  IF NR -  INT (NR) >  = .5 THEN NR = NR + 1
6550 NR =  INT (NR) * 10 ^ X
6560  IF F3 THEN NR = NR / 1E7
6570  RETURN 
7000  DATA  169,32,133,2,169,64,133,4,169,96,141,74,128
7010  DATA  32,34,128,96,169,64,133,2,169,32,133,4,169
7020  DATA  64,141,74,128,32,34,128,96,56,169,255,237,78
7030  DATA  128,141,78,128,169,0,133,1,133,3,160,0,177
7040  DATA  1,145,3,200,192,0,208,247,24,165,2,105,1,133  
7050  DATA  2,165,4,105,1,133,4,201,96,208,228,96


[ Return to Index | Top of Index ]

Go back to the main exhibit hall