Microsoft Small Basic
Program Listing: GZH322
GraphicsWindow.Title = "Analog"
GraphicsWindow.Width = 600
GraphicsWindow.Height = 600
byousinfutosa = 5
byousinnagasa = 250
hunsinfutosa = 8
hunsinnagasa = 280
jisinfutosa = 15
jisinnagasa = 200
tyusinX = 300
tyusinY = 300
GraphicsWindow.BrushColor = "LightCyan"
GraphicsWindow.FillEllipse(0, 0, 600, 600)
GraphicsWindow.BrushColor = "MintCream"
GraphicsWindow.FillEllipse(50, 50, 500, 500)
GraphicsWindow.BrushColor = "DarkSlateGray"
GraphicsWindow.FontSize = "25"
GraphicsWindow.DrawText(285, 7, "12")
GraphicsWindow.DrawText(430, 50, "1")
GraphicsWindow.DrawText(530, 150, "2")
GraphicsWindow.DrawText(565, 285, "3")
GraphicsWindow.DrawText(530, 420, "4")
GraphicsWindow.DrawText(430, 520, "5")
GraphicsWindow.DrawText(290, 560, "6")
GraphicsWindow.DrawText(147, 518, "7")
GraphicsWindow.DrawText(47, 415, "8")
GraphicsWindow.DrawText(15, 285, "9")
GraphicsWindow.DrawText(45, 150, "10")
GraphicsWindow.DrawText(140, 50, "11")
Timer.Interval = 1000
Timer.Tick = tokeimove
Sub tokeimove
Shapes.HideShape(jisin)
Shapes.HideShape(hunsin)
Shapes.HideShape(byousin)
byounow = Clock.Second
hunnow = Clock.Minute
jinow = Clock.Hour
pai = Math.Pi
GraphicsWindow.BrushColor = "LightSeaGreen"
jisin = Shapes.AddRectangle(jisinfutosa, jisinnagasa)
jikatamuki = jinow * 30 + hunnow * 30 / 60
idouxj = jisinnagasa * 0.5 * Math.Sin(jikatamuki * pai / 180)
idouyj = jisinnagasa * 0.5 * (1 - Math.Cos(jikatamuki * pai / 180) )
Shapes.Rotate(jisin, jikatamuki)
Shapes.Move(jisin, tyusinX - jisinfutosa + idouxj, tyusinY - jisinnagasa + idouyj)
GraphicsWindow.BrushColor = "SeaGreen"
hunsin = Shapes.AddRectangle(hunsinfutosa, hunsinnagasa)
idouxh = hunsinnagasa * 0.5 * Math.Sin(hunnow * 6 * pai / 180)
idouyh = hunsinnagasa * 0.5 * (1 - Math.Cos(hunnow * 6 * pai / 180) )
Shapes.Rotate(hunsin, hunnow * 6)
Shapes.Move(hunsin, tyusinX - hunsinfutosa + idouxh, tyusinY - hunsinnagasa + idouyh)
GraphicsWindow.BrushColor = "LightCoral"
byousin = Shapes.AddRectangle(byousinfutosa, byousinnagasa)
idoux = byousinnagasa * 0.5 * Math.Sin(byounow * 6 * pai / 180)
idouy = byousinnagasa * 0.5 * (1 - Math.Cos(byounow * 6 * pai / 180) )
Shapes.Rotate(byousin, byounow * 6)
Shapes.Move(byousin, tyusinX - byousinfutosa + idoux, tyusinY - byousinnagasa + idouy)
EndSub