假设有两个顶点的XoY多段线:
- PlineVertexes = MyPLine.Coordinates
- DeltaX = PlineVertexes(3) - PlineVertexes(0) 'displacement on X
- DeltaY = PlineVertexes(4) - PlineVertexes(5) 'displacement on Y
- If DeltaX = 0 Then
- theAngle = 0.5 * pi '90 degrees
- Else
- theAngle = Atn(DeltaY / DeltaX) 'polyline's angle
- End If
- ReDim Point3rd(2) 'middle point
- Point3rd(0) = 0.5 * (PlineVertexes(3) + PlineVertexes(0)) 'X
- Point3rd(1) = 0.5 * (PlineVertexes(4) + PlineVertexes(5)) 'Y
- Point3rd(2) = 0# 'Z
- 'calculate new angle by adding or subtracting 90 degrees
- NewAngle = theAngle + 0.5 * pi 'LEFT side
- 'NewAngle = theAngle - 0.5 * pi 'RIGHT side
- 'calculate the new point at arbitrary distance (1 unit)
- NewDistance = 1
- ReDim Point4th(2) 'new point
- Point4th(0) = Point3rd(0) + NewDistance * Cos(NewAngle)
- Point4th(1) = Point3rd(1) + NewDistance * Sin(NewAngle)
- Point4th(2) = 0#
- ThisDrawing.ModelSpace.AddLine Point3rd, Point4th
当做 |