Я использовал конвертер "C++ to VB Converter"
Но он мне вообще не помог, я так и не смог код на VB.NET перевести. Второй пример я тоже так и не смог на VB.Net сделать как не старался. Воспользовался описанием самой идеи. Сегодня по быстрому написал код, вроде пока работает, но чувствую надо дорабатывать слишком просто. Хотя на всех моих полигонах отработал код без ошибок.
If TypeOf obj Is Autodesk.AutoCAD.DatabaseServices.Polyline Then
Dim ParcelObj As Autodesk.AutoCAD.DatabaseServices.Polyline = obj
Dim ang1 As Integer = 0
Dim ang2 As Integer = 0
For i As Integer = 0 To ParcelObj.NumberOfVertices - 2
Dim seg1 As LineSegment2d = ParcelObj.GetLineSegment2dAt(i)
If seg1.Length < 0.01 Then
Continue For
End If
Dim seg2 As LineSegment2d = Nothing
If i = ParcelObj.NumberOfVertices - 2 Then
seg2 = ParcelObj.GetLineSegment2dAt(0)
Else
seg2 = ParcelObj.GetLineSegment2dAt(i + 1)
End If
Dim dangle1 As Double = seg1.Direction.Angle
Dim dangle2 As Double = seg2.Direction.Angle
Dim delta As Double = dangle2 - dangle1
If delta > 0 Then
ang1 += 1 '
Else
ang2 += 1
End If
Next i
If ang1 < ang2 Then
MsgBox("По часовой")
Else
MsgBox("Против часовой")
End If
End If