Sub Clear
For i = 1 To nObj
If o[i] <> "" Then
Shapes.Remove(o[i])
o[i] = ""
EndIf
EndFor
nObj = 0
EndSub
Sub DrawGrid
For x = 0 To gw Step 10
If Math.Remainder(x, 100) = 0 Then
GraphicsWindow.PenColor = "#33000000"
Else
GraphicsWindow.PenColor = "#33999999"
EndIf
GraphicsWindow.DrawLine(x, 0, x, gh)
EndFor
For y = 0 To gh Step 10
If Math.Remainder(y, 100) = 0 Then
GraphicsWindow.PenColor = "#33000000"
Else
GraphicsWindow.PenColor = "#33666666"
EndIf
GraphicsWindow.DrawLine(0, y, gw, y)
EndFor
EndSub
Sub DrawTriangle
For i1 = 1 To 3
i2 = i1 + 1
If 3 < i2 Then
i2 = 1
EndIf
p1 = v[param[i1]]
p2 = v[param[i2]]
nObj = nObj + 1
o[nObj] = Shapes.AddLine(p1["x"], p1["y"], p2["x"], p2["y"])
EndFor
EndSub
Sub DumpVertices
n = Array.GetItemCount(v)
index = Array.GetAllIndices(v)
For i = 1 To n
TextWindow.WriteLine(index[i] + ":" + v[index[i]])
EndFor
EndSub
Sub MoveVertex
moved = "False"
While Not[moved]
vx[1] = v["A"]["x"]
vy[1] = v["A"]["y"]
vx[2] = v["B"]["x"]
vy[2] = v["B"]["y"]
vx[3] = v["C"]["x"]
vy[3] = v["C"]["y"]
If mouseDown Then
mx = dx
my = dy
For i = 1 To 3
_dx = dx - vx[i]
_dy = dy - vy[i]
_d = Math.SquareRoot(_dx * _dx + _dy * _dy)
If _d <= gap Then
GraphicsWindow.PenWidth = 0
GraphicsWindow.BrushColor = "#33000000"
moved = "True"
While mouseDown
GraphicsWindow.Title = title + " " + mx + ", " + my
Shapes.Remove(ot)
vx[i] = mx
vy[i] = my
ot = Shapes.AddTriangle(vx[1], vy[1], vx[2], vy[2], vx[3], vy[3])
Program.Delay(50)
EndWhile
GraphicsWindow.Title = title
Shapes.Remove(ot)
alpha = "1=A;2=B;3=C;"
v[alpha[i]]["x"] = vx[i]
v[alpha[i]]["y"] = vy[i]
EndIf
EndFor
Else
Program.Delay(100)
EndIf
EndWhile
EndSub
Sub OnMouseDown
dx = GraphicsWindow.MouseX
dy = GraphicsWindow.MouseY
mouseDown = "True"
EndSub
Sub OnMouseUp
mouseDown = "False"
EndSub
Sub OnMouseMove
mx = GraphicsWindow.MouseX
my = GraphicsWindow.MouseY
EndSub