Dim c(100 ,50) : Dim s(12 ,12 )
Global mx ,my , mz , mzz , md , q
Graphics 800,600,32,2
SetBuffer BackBuffer()
k=1
For b= 1 To 12
For a=1 To 12
c(a,b)= Rand(0,1)
s(a,b)= Rand(0,255)
Next
Next
ClsColor 222,222,222
While Not KeyHit(1)
mx = MouseX() : my=MouseY() : mz = Abs(MouseZ () )+1
Cls
If mx>1 And mx<100 And my>1 And my<50
Color 115,115,115
Line mx,0,mx,50
Line 0,my,100,my
Color 255,5,5
Oval mx-mz+0.5,my-mz+0.5 ,mz*2,mz*2,0
EndIf
If MouseDown(1) Then md=1 Else md=0
If KeyHit(2) Then q= Not q
module()
Draw()
Color 55,55,55
Rect 0,0,100,50,0
Text 100,20,"mz = "+mz +" q = "+q
Flip
Wend
End
Function module()
For y= 1 To 50
For x=1 To 100
For z=0 To mz
If Int( ((mx - x)^2 + (my - y)^2)^.5 ) = z Then
col1 = mz-z
If md=1 And q=0 Then c(x,y) =c(x,y)+ ((mz-z )*0.2)
If md=1 And q=1 Then c(x,y) =c(x,y)- ((mz-z )*0.2)
If col1>255 Then col1 =255
If c(x,y)<=1 Then c(x,y) =1
; Color col1,col1,col1
; Plot x,y-z1
EndIf
Next
Next
Next
End Function
Function Draw()
For y= 1 To 50
For x=1 To 100
col3=c(x,y)
If col3>255 Then col3=255
Color col3,col3,col3
If col3<=1 Then Color 0,0,100
; Plot 100+x+y,100+y-c(x,y)
Line 100+x+y,100+y-c(x,y) , 100+x+y,100+y+c(x,y)
For z=0 To mz
If Int( ((mx - x)^2 + (my - y)^2)^.5 ) = z Then
col2 = 20+z*4
If col2>255 Then col2 =255
Color col2,col2,col2
If col2<=1 Then Color 0,0,250
; Plot 100+x+y,100+y-c(x,y)
Line 100+x+y,100+y-c(x,y) , 100+x+y,100+y+c(x,y)
EndIf
Next
Next
Next
End Function
Function DistABS(ax,ay,bx,by)
Return (Abs(bx-ax)+Abs (by-ay))
End Function