вопрос связан с тем, что при работе с Curve иногда возникает непонятная и нерегулярная ошибка при обращении к методу GetClosestPointToЧто за ошибка? Может вы не в ту сторону копаете?
Это Vector3d я вычисляю как вектор из точки VIEWDIR и Point3d.OriginУчтите, что метод должен принимать нормальный вектор, т.е. единичной длины. И этот вектор задает нормаль плоскости на которую должна проецироваться точка - т.е. VIEWDIR должно быть достаточно
Во-первых - описанных причин по идее не должно быть. Все методы работают с координатами в WCS. Значит логично предположить, что у вас где-то неверная координата. Если поставить WCS метод будет работать без использования Vector3D?Без использования Vector3d, будет выбран красный отрезок, тогда как на 1 картинке запрос даст точку визуально близкую к зеленому (точка получена из PickPoint, ее координаты в общем случае преобразованы из CCS в WCS). И положение точки в пространстве будет ближе к красному, а не указанному в запросе зеленому отрезку.
Учтите, что метод должен принимать нормальный вектор, т.е. единичной длины. И этот вектор задает нормаль плоскости на которую должна проецироваться точка - т.е. VIEWDIR должно быть достаточноБлагодарю за подсказку. Привел длину вектора, полученного из VIEWDIR к единице. Делением вектора на его длину. Ошибка пока не возникала. Но она нерегулярная, так что пока ничего сказать не могу.
Это Vector3d я вычисляю как вектор из точки VIEWDIR и Point3d.Origin.А точнее?
ее координаты в общем случае преобразованы из CCS в WCSЧто за CCS???
А точнее?
Что за CCS???Ошибся при написании - UCS на самом деле (CurrentUserCoordinateSystem)
Кроме того acViewVector.GetNormal() и acViewVector.DivideBy(acViewVector.Length) - это одно и тоже.Благодарю за информацию!
Второй вариант функции возвращает вектор в UCS, а не в WCS