Тема: Количество точек в полилинии

Есть ли какое-нибудь свойство у полилинии, которое содержит информацию о количестве точек ее составляющих? А также какими сегментами они соединены?

Re: Количество точек в полилинии

в зависимоти от типа полилаина
(Ubound (obj.coordinates) +1) / 2 ' для LWPolyline
(Ubound (obj.coordinates) +1) / 3 'для Polyline
вернет кол-во точек
сегменты вычисляешь сам :(
' Calculate distance between two points
Public Function distance(sp As Variant, ep As Variant) _
As Double
    Dim X As Double
    Dim Y As Double
    Dim z As Double
    X = sp(0) - ep(0)
    Y = sp(1) - ep(1)
    z = sp(2) - ep(2)
    distance = Sqr((Sqr((X ^ 2) + (Y ^ 2)) ^ 2) + (z ^ 2))
End Function

Re: Количество точек в полилинии

А не можешь подсказать: Как обнулить\очистить весь массив элементов одной командой?
Для одномерного массива:
Dim MyArray() As Integer    ' Declare dynamic array.
Redim MyArray(5)    ' Allocate 5 elements.
For I = 1 To 5    ' Loop 5 times.
    MyArray(I) = I    ' Initialize array.
Next I
The next statement resizes the array and erases the elements.
Redim MyArray(10)    ' Resize to 10 elements.
For I = 1 To 10    ' Loop 10 times.
    MyArray(I) = I    ' Initialize array.
Next I
The following statement resizes the array but does not erase elements.
Redim Preserve MyArray(15)    ' Resize to 15 elements.
А если двумерный массив?
А в первом вопросе я имел ввиду не расстояние между точками, а какая линия их соединяет (прямая или дуга).?

Re: Количество точек в полилинии

Я не очень понимаю что значит обнулить.
Примеры которые ты привел как раз инициализируют масив а не очищают.
самый простой вариант ето Redim MyArray(10) Или MyArray(2,10) для двухмерного. Ето не только ресайз но и обнуляет масив.
Но можно и пошагово
Redim MyArray(3,5) ' Allocate 5 elements.' Помоему всеже 6.
никогда не не делаите итератор i = 1. Очень вредная практика, знаете ли, особенно при работе с масивами.
В вашем поримере
MyArray(I) = I в первыь раз засунет единицу во второй елемент,
а на последнем шаге свалится
Для многомерного масива
ReDim a(2, 4)
For i = 0 To 2 ' Loop 3 times.
For j = 0 To 4 ' Loop 5 times.
a(i, j) = j * i
Next j
Next i
По поводу полилинии. У нее есть метод GetBulge, который возвращает 0 если ето прямая. Кстати, есть еще и SetBulge.