Microsoft Small Basic
Program Listing:
Embed this in your website
<object id='sbapp' data='data:application/x-silverlight-2,' type='application/x-silverlight-2' width='640' height='480'> <param name='source' value='http://smallbasic.com/program/ClientBin/SBWeb.xap'/> <param name='onError' value='onSilverlightError' /> <param name='background' value='white' /> <param name='minRuntimeVersion' value='3.0.40624.0' /> <param name='autoUpgrade' value='true' /> <param name='initParams' value='programId=SLH926' /> </object>
GraphicsWindow
.
BackgroundColor
=
"Wheat"
eyeball_num
=
5
For
i
=
1
to
eyeball_num
rad
[
i
]
=
Math
.
GetRandomNumber
(
150
)
+
50
pupilrad
[
i
]
=
rad
[
i
]
/
5
irisrad
[
i
]
=
pupilrad
[
i
]
*
1.5
eyecolor
[
i
]
=
GraphicsWindow
.
GetRandomColor
(
)
GraphicsWindow
.
BrushColor
=
"White"
eyeball
[
i
]
=
Shapes
.
AddEllipse
(
rad
[
i
]
,
rad
[
i
]
)
GraphicsWindow
.
BrushColor
=
eyecolor
[
i
]
iris
[
i
]
=
Shapes
.
AddEllipse
(
irisrad
[
i
]
,
irisrad
[
i
]
)
GraphicsWindow
.
BrushColor
=
"Black"
pupil
[
i
]
=
Shapes
.
AddEllipse
(
pupilrad
[
i
]
,
pupilrad
[
i
]
)
posX
[
i
]
=
Math
.
GetRandomNumber
(
GraphicsWindow
.
Width
-
rad
[
i
]
)
posY
[
i
]
=
Math
.
GetRandomNumber
(
GraphicsWindow
.
Height
-
rad
[
i
]
)
Shapes
.
Move
(
pupil
[
i
]
,
posX
[
i
]
-
pupilrad
[
i
]
/
2
,
posY
[
i
]
-
pupilrad
[
i
]
/
2
)
Shapes
.
Move
(
eyeball
[
i
]
,
posX
[
i
]
-
rad
[
i
]
/
2
,
posY
[
i
]
-
rad
[
i
]
/
2
)
Shapes
.
Move
(
iris
[
i
]
,
posX
[
i
]
-
irisrad
[
i
]
/
2
,
posY
[
i
]
-
irisrad
[
i
]
/
2
)
EndFor
GraphicsWindow
.
MouseDown
=
MouseDown
GraphicsWindow
.
MouseUp
=
MouseUp
While
(
"True"
)
For
g
=
1
To
eyeball_num
getAngle
(
)
distfromcenter
[
g
]
=
Math
.
SquareRoot
(
Math
.
Abs
(
dx
[
g
]
*
dx
[
g
]
+
dy
[
g
]
*
dy
[
g
]
)
)
yOnEyeball
[
g
]
=
Math
.
Sin
(
angle
[
g
]
)
*
Math
.
Min
(
rad
[
g
]
/
2
-
irisrad
[
g
]
/
2
,
distfromcenter
[
g
]
/
3
)
xOnEyeball
[
g
]
=
Math
.
Cos
(
angle
[
g
]
)
*
Math
.
Min
(
rad
[
g
]
/
2
-
irisrad
[
g
]
/
2
,
distfromcenter
[
g
]
/
3
)
Shapes
.
Move
(
pupil
[
g
]
,
posX
[
g
]
+
xOnEyeball
[
g
]
-
pupilrad
[
g
]
/
2
,
posY
[
g
]
+
yOnEyeball
[
g
]
-
pupilrad
[
g
]
/
2
)
Shapes
.
Move
(
iris
[
g
]
,
posX
[
g
]
+
xOnEyeball
[
g
]
-
irisrad
[
g
]
/
2
,
posY
[
g
]
+
yOnEyeball
[
g
]
-
irisrad
[
g
]
/
2
)
EndFor
Program
.
Delay
(
10
)
EndWhile
Sub
getAngle
dx
[
g
]
=
GraphicsWindow
.
MouseX
-
posX
[
g
]
dy
[
g
]
=
GraphicsWindow
.
MouseY
-
posY
[
g
]
If
(
dx
[
g
]
=
0
)
Then
angle
[
g
]
=
Math
.
Pi
/
2
If
(
dy
[
g
]
<
0
)
Then
angle
[
g
]
=
-
angle
[
g
]
EndIf
Else
angle
[
g
]
=
Math
.
ArcTan
(
dy
[
g
]
/
dx
[
g
]
)
EndIf
If
(
dx
[
g
]
<
0
)
Then
angle
[
g
]
=
angle
[
g
]
+
Math
.
Pi
EndIf
EndSub
Sub
MouseDown
For
r
=
1
To
eyeball_num
Shapes
.
Zoom
(
iris
[
r
]
,
1.2
,
1.2
)
Shapes
.
Zoom
(
pupil
[
r
]
,
1.2
,
1.2
)
EndFor
EndSub
Sub
MouseUp
For
w
=
1
To
eyeball_num
Shapes
.
Zoom
(
iris
[
w
]
,
1
,
1
)
Shapes
.
Zoom
(
pupil
[
w
]
,
1
,
1
)
EndFor
EndSub
Copyright (c) Microsoft Corporation. All rights reserved.