59 lines
1.7 KiB
Text
59 lines
1.7 KiB
Text
Module CheckIt {
|
|
Er$="Pset is a new statement"
|
|
If Version<9.4 Then Error Er$
|
|
If Version=9.4 then If revision<26 then Error Er$
|
|
Form 60, 40
|
|
Cls 0 ' Black
|
|
Gradient 0,1
|
|
Pen 14 ' Yellow
|
|
Set Fast !
|
|
Refresh 500
|
|
Module Sphere (R as long, X0 as long, Y0 as long, fun){
|
|
R2 = R * R
|
|
Def Long X, Y, D2
|
|
Let Scale=twipsx/R*13.5
|
|
For Y = -R To R step twipsx {
|
|
Move X0-R, Y+Y0
|
|
For X = -R To R step twipsy {
|
|
D2 = X **2 + Y **2
|
|
IF R2>D2 THEN Pset Fun(Max.Data(Min.Data((Sqrt(R2 - D2) - ( X + Y) / 2 )*Scale ,255),0))
|
|
Step twipsx
|
|
}
|
|
}
|
|
}
|
|
Blue=lambda (c)->{
|
|
c1=c/4+192
|
|
=Color(c,c,c1)
|
|
}
|
|
Blue1=lambda (c)->{
|
|
c1=c/4+Random(150,192)
|
|
=Color(c,c,c1)
|
|
}
|
|
Mystery=lambda m=1 (c)->{
|
|
c1=c/4+m
|
|
m+=10
|
|
if m>192 then m=1
|
|
=Color(c,c,c1)
|
|
}
|
|
Mystery2=lambda m=1, p=true (c)->{
|
|
c1=c/4+m
|
|
if p then m+=10
|
|
Else m=-10
|
|
if m>192 then m-=10 : p=false
|
|
If m<0 then m+=10: p=true
|
|
=Color(c,c,c1)
|
|
}
|
|
Buffer Alfa as byte*8
|
|
Trans =lambda Alfa (c) -> {
|
|
Return Alfa, 0:=-point as long
|
|
Return Alfa, 4:=-color(c,c, c/4+192) as long
|
|
for i=0 to 2: Return Alfa, i:=(Eval(Alfa, i)+Eval(Alfa, i+4))/2: Next i
|
|
=-Eval(Alfa, 0 as long)
|
|
}
|
|
Sphere 2400, 9000,7000, Blue
|
|
Sphere 800, 6000, 7000, Blue1
|
|
Sphere 1200, 5000,5000, Mystery
|
|
Sphere 1200, 10000,6000, Mystery2
|
|
Sphere 1200, 8000,5000, trans
|
|
}
|
|
Checkit
|