[CDR X5-X8] найти ближайшую точку на шейпе к данной точке

Статус
Закрыто для дальнейших ответов.

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Пожалуй ты прав, я понял почему у меня ругалось
Корректно проходит такой код
Код:
Sub ClosestPoint()
    x# = 0
    y# = 0
    Dim po#
    Dim t As Double
    Dim a As Segment
    ActiveDocument.Unit = cdrMillimeter
    Set a = ActiveSelectionRange(1).DisplayCurve.FindClosestSegment(x, y, po)
    If a Is Nothing Then Beep: Exit Sub
    a.GetPointPositionAt po, x, y
    MsgBox "x = " & x & vbCr & "y = " & y
End Sub
Однако, толку с него мало, возвращается a хоть и не пустое, но совершенно левое значение, соответственно и координаты x у следующей строкой выдаются от фонаря :(
 

lev

Модератор
20 лет на форуме
Сообщения
2 146
Реакции
2 071
Последние несколько версий была путаница с изменением порядка аргументов в функциях, а в хелпах оставался старый код примеров.
Т.е. правильным для GetPointPositionAt po, x, y может, на самом деле, оказаться GetPointPositionAt x, y, po и т.п.
зы Попробовал, так оно и есть
 
  • Спасибо
Реакции: _MBK_
Статус
Закрыто для дальнейших ответов.