Graphical demos for the PicoCalc

'Apollo set
CLS
x=0.2
y=0.3
r=Sqr(3)
Randomize Timer
Do
a=Rnd()
a0=3*(1+r-x)/((1+r-x)*(1+r-x)+y*y)-(1+r)/(2+r)
b0=3*y/((1+r-x)*(1+r-x)+y*y)

If (a<=0.333) And (a>=0) Then
x1=a0
y1=b0
EndIf

a1=-0.5
b1=r/2
a2=-0.5
b2=-r/2
fix=a0/(a0*a0+b0*b0)
fiy=-b0/(a0*a0+b0*b0)

If (a<=0.667) And (a>=0.333) Then
x1=fix*a1-fiy*b1
y1=fix*b1+fiy*a1
EndIf

If (a<=1) And (a>=0.667) Then
x1=fix*a2-fiy*b2
y1=fix*b2+fiy*a2
EndIf

x=x1
y=y1

Pixel 160+30*x,160+30*y,&Hff0000

Loop Until Inkey$=Chr$(27)

1 Like

'Sierpinsky curve
CLS

Dim x As integer
Dim y As integer

Const a=3
Const b=a
x=2
y=2

n=5
aa(n)
lrel(a,b)
bb(n)
lrel(-a,b)
cc(n)
lrel(-a,-b)
dd(n)

Sub lrel dx,dy
Line x,y,x+dx,y+dy,1,&Hffffff
x=x+dx
y=y+dy
End Sub

Sub aa k
 If k>0 Then
 aa(k-1)
 lrel(a,b)
 bb(k-1)
 lrel(a,0)
 dd(k-1)
 lrel(a,-b)
 aa(k-1)
 EndIf
End Sub

Sub bb(k)
If k>0 Then
bb(k-1)
lrel(-a,b)
cc(k-1)
lrel(0,b)
aa(k-1)
lrel(a,b)
bb(k-1)
EndIf
End Sub

Sub cc(k)
If k>0 Then
cc(k-1)
lrel(-a,-b)
dd(k-1)
lrel(-a,0)
bb(k-1)
lrel(-a,b)
cc(k-1)
EndIf
End Sub

Sub dd(k)
If k>0 Then
dd(k-1)
lrel(a,-b)
aa(k-1)
lrel(0,-b)
cc(k-1)
lrel(-a,-b)
dd(k-1)
EndIf
End Sub

1 Like

'Hitomezashi sashiko stitch
' Space to repeat, Esc - quit
Option default integer
Randomize timer'&h123456
sashiko()
Do
k$=Inkey$
If k$=Chr$(32) Then
sashiko()
EndIf
Loop Until k$=Chr$(27)

Sub sashiko
CLS
For n=0 To 1
r=Int(255*Rnd())
For y=0 To 319 Step 8
f=r And 1
For x=0 To 319 Step 8
If f Then
If n Then
Line x,y,x+8,y,1,&H00ff00
Else
Line y,x,y,x+8,1,&H00ff00
EndIf

EndIf
f=1-f
Next x
r=(r>>1) Or(128*(r And 1))
Next y
Next n
End Sub

2 Likes

'Golden Dragon IFS
CLS
Randomize Timer
x!=0
y!=0
For i=0 To 100000
rr=Int(2*Rnd())
If rr=1 Then
a!=0.62367
b!=-0.40337
c!=0.40337
d!=0.62367
e!=0
f!=0
Else
a!=-0.37633
b!=-0.40337
c!=0.40337
d!=-0.37633
e!=0.5
f!=0
EndIf

xx!=a!*x!+b!*y!+e!
yy!=c!*x!+d!*y!+f!
sc=400
Pixel 80+xx!*sc,160-yy!*sc
x!=xx!
y!=yy!
Next i

1 Like

'Parametric Plot, liberty basic
Color &H00ffff,255
CLS
xo=160
yo=160
mu=80
For t=-8 To 8 Step 0.0001
x=Sin(9.52*t)+1
y=Cos(9.52*t)^4*Sin(Sin(4.8*t))

Pixel xo+mu*x,yo+mu*y
Pixel xo-mu*x,yo+mu*y
Pixel xo+mu*y,yo+mu*x
Pixel xo+mu*y,yo-mu*x

Next t

2 Likes

'Maple Leaf IFS
CLS
Randomize timer'&H123456
x!=0
y!=0
Do
r=Int(4*Rnd())
Select Case r
Case 0
xx!=0.14*x!+0.01*y!+0.08
yy!=0*x!+0.51*y!-1.31
co=RGB(255,255,0)
Case 1
xx!=0.43*x!+0.52*y!+1.49
yy!=-0.45*x!+0.50*y!-0.75
co=RGB(255,0,0)
Case 2
xx!=0.45*x!-0.49*y!-1.62
yy!=0.47*x!+0.47*y!-0.74
co=RGB(192,0,0)
Case 3
xx!=0.49*x!+0*y!+0.02
yy!=0*x!+0.51*y!+1.62
co=RGB(192,192,0)
End Select
m=40
Pixel 160+m*xx!,160-m*yy!,co
x!=xx!
y!=yy!
Loop Until Inkey$=Chr$(27)

3 Likes

Dude, where do you find these?

'Escher pictures from Pokey's Magazine 05 1991_02 (s2).atr, Atari XL/XE
Restore FIGUUR1
fig(42)

lp:
Do
k$=Inkey$
Loop Until k$<>""
610 If k$="1" Then
Restore FIGUUR1
fig(42)
EndIf

If k$="2" Then
Restore FIGUUR2
fig(12)
EndIf

If k$="3" Then
Restore FIGUUR3
fig(27)
EndIf

If k$="4" Then
Restore FIGUUR4
fig(16)
EndIf

If k$="5" Then
Restore FIGUUR5
fig(28)
EndIf

If k$<>Chr$(27) Then GoTo lp

Sub fig C
CLS
For I=1 To C
Read X1,Y1,X2,Y2
Line X1,280-Y1,X2,280-Y2
Next I
Print @(110,0)"Press 1 to 5"
End Sub

FIGUUR1:
Data 20,65,170,20
Data 170,20,290,55
Data 290,55,290,135
Data 290,135,130,170
Data 130,170,20,145
Data 20,145,20,65
Data 41,65,161,29
Data 51,67,161,34
Data 161,29,161,96
Data 161,96,140,102
Data 118,109,30,134
Data 30,134,30,73
Data 30,73,118,95
Data 118,95,118,161
Data 118,161,43,145
Data 40,131,40,76
Data 170,20,170,100
Data 170,100,290,135
Data 170,100,140,109
Data 118,116,20,145
Data 43,145,118,123
Data 140,116,170,107
Data 170,107,262,134
Data 262,134,140,160
Data 140,95,161,90
Data 182,85,278,65
Data 290,55,182,78
Data 161,84,130,91
Data 130,91,130,170
Data 140,95,140,160
Data 118,155,55,142
Data 20,65,130,91
Data 41,65,126,85
Data 126,85,161,77
Data 182,72,265,54
Data 265,54,182,30
Data 182,35,255,56
Data 182,30,182,95
Data 182,95,278,123
Data 278,123,278,65
Data 268,67,268,121
Data 248,131,140,154
FIGUUR2:
Data 140,10,170,10
Data 170,10,270,160
Data 270,160,240,188
Data 240,188,80,188
Data 80,188,58,160
Data 58,160,140,10
Data 170,10,105,130
Data 105,130,170,130
Data 140,130,170,75
Data 170,75,240,188
Data 155,105,188,160
Data 188,160,58,160
FIGUUR3:
Data 40,5,240,5
Data 240,5,290,65
Data 290,65,290,188
Data 290,188,92,188
Data 92,188,92,173
Data 92,173,280,173
Data 280,173,280,80
Data 280,80,92,80
Data 92,80,92,65
Data 92,65,290,65
Data 40,5,40,20
Data 40,20,208,20
Data 208,20,234,50
Data 234,50,65,50
Data 65,50,65,35
Data 65,35,208,35
Data 208,35,220,50
Data 226,80,226,113
Data 226,113,280,173
Data 226,113,40,113
Data 40,113,40,128
Data 40,128,208,128
Data 208,128,234,158
Data 234,158,65,158
Data 65,158,65,143
Data 65,143,208,143
Data 208,143,220,158
FIGUUR4:
Data 80,10,220,10
Data 220,10,240,30
Data 240,30,240,170
Data 240,170,100,170
Data 100,170,80,150
Data 80,150,80,10
Data 220,10,220,150
Data 220,150,120,150
Data 120,150,120,50
Data 120,50,100,30
Data 120,50,200,50
Data 200,30,200,130
Data 200,130,220,150
Data 200,130,120,130
Data 100,170,100,30
Data 100,30,200,30
FIGUUR5:
Data 99,5,117,5
Data 117,5,148,55
Data 148,55,218,55
Data 99,5,198,160
Data 198,160,100,160
Data 90,173,290,173
Data 290,173,284,186
Data 284,186,64,186
Data 64,186,20,120
Data 20,120,99,5
Data 99,30,38,120
Data 38,120,64,160
Data 64,160,124,70
Data 124,70,99,30
Data 218,55,290,173
Data 157,68,215,160
Data 215,160,266,160
Data 266,160,210,68
Data 210,68,158,68
Data 90,173,140,95
Data 64,186,132,82
Data 132,82,181,160
Data 38,120,55,120
Data 55,120,107,43
Data 55,120,72,147
Data 210,68,200,81
Data 200,81,167,81
Data 200,81,249,160

1 Like

Option default integer
'4 gradient
CLS
'colors
r1=255
g1=0
b1=0

r2=0
g2=255
b2=0

r3=0
g3=0
b3=255

r4=255
g4=255
b4=255

For y=0 To 319
r01=Int(r1+y*(r3-r1)/320) And 255
g01=Int(g1+y*(g3-g1)/320) And 255
b01=Int(b1+y*(b3-b1)/320) And 255

r02=Int(r2+y*(r4-r2)/320) And 255
g02=Int(g2+y*(g4-g2)/320) And 255
b02=Int(b2+y*(b4-b2)/320) And 255

For x=0 To 319

r=Int(r01+(x*(r02-r01)/320)) And 255
g=Int(g01+(x*(g02-g01)/320)) And 255
b=Int(b01+(x*(b02-b01)/320)) And 255
Pixel x,y,RGB(r,g,b)
Next x
Next y

1 Like

‘Spiral IFS
CLS
Randomize timer’&H12345678
x!=0
y!=0

For i=0 To 20000
r=Int(100*Rnd())
If r<=90 Then
a!=0.787879
b!=-0.424242
c!=0.242424
d!=0.859848
e!=1.758647
f!=1.408065
Else If r<=95 Then
a!=-0.121212
b!=0.257576
c!=0.151515
d!=0.053030
e!=-6.721654
f!=1.377236
Else
a!=0.181818
b!=-0.136364
c!=0.090909
d!=0.181818
e!=6.086107
f!=1.568035
EndIf

xn!=a!*x!+b!*y!+e!
yn!=c!*x!+d!*y!+f!
sc=20
Pixel xn!*sc+160,yn!*sc+80
x!=xn!
y!=yn!
Next i

1 Like

'spider fractal
CLS

iter=50
max=16

For y=-160 To 160
For x=-160 To 160

n=0
zx!=x*0.01
zy!=y*0.01
cx!=zx!
cy!=zy!
Do While ((zx!*zx!+zy!*zy!)<max) And (n<iter)
z1x!=zx!
z1y!=zy!
c1x!=cx!
c1y!=cy!

zx!=z1x!*z1x!-z1y!z1y!+cx!
zy!=2z1x!*z1y!+cy!
cx!=c1x!/2+zx!
cy!=c1y!/2+zy!
n=n+1
Loop

If n<iter Then
co=n Mod 16
Color RGB(co*16,co*16,0)
Pixel 160+x,160+y
EndIf
Next x
Next y
1 Like

The file appears to have corrupted. Same again further down

must be

zx!=x*0.01
zy!=y*0.01

Color RGB(co*16,co*16,0)

correct file: