Sub AddEllipseToElement
' param["name"] - object name
' param["width"] - width of rectangle
' param["height"] - height of rectangle
' param scale - scale of size
ele[param["name"] + ".width"] = param["width"]
ele[param["name"] + ".height"] = param["height"]
ele[param["name"]] = Shapes.AddEllipse(ele[param["name"] + ".width"] * scale, ele[param["name"] + ".height"] * scale)
EndSub
Sub AddRectangleToElement
' param["name"] - object name
' param["width"] - width of rectangle
' param["height"] - height of rectangle
' param scale - scale of size
ele[param["name"] + ".width"] = param["width"]
ele[param["name"] + ".height"] = param["height"]
ele[param["name"]] = Shapes.AddRectangle(ele[param["name"] + ".width"] * scale, ele[param["name"] + ".height"] * scale)
EndSub
Sub AddArcToElement
' param["name"] - object name
' param["a1"] - start angle [degree]
' param["a2"] - end angle [degree]
' param["r"] - radius
' param["width"] - pen width
name = param["name"]
a1 = param["a1"]
a2 = param["a2"]
r = param["r"]
width = param["width"]
ele[name + ".a1"] = a1
ele[name + ".a2"] = a2
ele[name + ".r"] = r
ele[name + ".width"] = width
For a = a1 To a2
ele[name + a] = Shapes.AddEllipse(width * scale, width * scale)
EndFor
EndSub
Sub MoveArc
' param["name"] - object name
' param["cx"] - center x position
' param["cy"] - center y position
name = param["name"]
cx = param["cx"]
cy = param["cy"]
a1 = ele[name + ".a1"]
a2 = ele[name + ".a2"]
r = ele[name + ".r"]
width = ele[name + ".width"]
For a = a1 To a2
left = cx + r * Math.Cos(a * Math.Pi / 180) - width / 2
top = cy - r * Math.Sin(a * Math.Pi / 180) - width / 2
Shapes.Move(ele[name + a], left * scale, top * scale)
EndFor
EndSub
Sub MoveElement
' param["name"] - object name
' param["cx"] - center x coordinate
' param["cy"] - center y coordinate
' param scale - scale of size
ele[param["name"] + ".cx"] = param["cx"]
ele[param["name"] + ".cy"] = param["cy"]
Shapes.Move(ele[param["name"]], (ele[param["name"] + ".cx"] - ele[param["name"] + ".width"] / 2) * scale, (ele[param["name"] + ".cy"] - ele[param["name"] + ".height"] / 2) * scale)
EndSub
Sub DumpParam
n = Array.GetItemCount(param)
index = Array.GetAllIndices(param)
For i = 1 To n
TextWindow.WriteLine("param[" + index[i] + "]=" + param[index[i]])
EndFor
EndSub
Sub DumpElements
n = Array.GetItemCount(ele)
index = Array.GetAllIndices(ele)
For i = 1 To n
TextWindow.WriteLine("ele[" + index[i] + "]=" + ele[index[i]])
EndFor
EndSub