Получение точек пересечения кривой и плоскости

Автор Тема: Получение точек пересечения кривой и плоскости  (Прочитано 6314 раз)

0 Пользователей и 3 Гостей просматривают эту тему.


Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Описанный метод хорошо работает, когда надо определить количество точек пересечения. Но надо учитывать,что
1. в методе содержится очень длинный цикл
2. точки находит приблизительно, они не лежат на кривой. Соответственно Curve.GetParameterAtPoint выдаст eGeneralModelingError. А Curve.GetClosestPointTo тоже нерабочий у сплайнов (всегда выдает конечные точки сплайна).
Поэтому логично сначала использовать метод проецирования кривой, затем метод подмены проекции на линию и только если ничего не работает - тогда уже пробовать линейную аппроксимацию.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
А на что можно заменить метод GetGeCurve в автокаде 2012 ? Компилятор пишет, нет такого

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
2. точки находит приблизительно, они не лежат на кривой.
Точность очень высока и ты можешь управлять ею.
Соответственно Curve.GetParameterAtPoint выдаст eGeneralModelingError
А этим методом вообще не следует пользоваться, особенно если возможны петли у кривой.
А на что можно заменить метод GetGeCurve в автокаде 2012 ?
Только написать этот метод самому. При этом ограничится только теми типами кривых (Curve), которые у тебя могут использоваться (например, только Spline и Polyline3d), так как в общем случае это достаточно сложно. Можно вообще не пользоваться этим методом, а использовать метод Curve.GetPointAtParameter, вычисляя величину хорды и если она больше заданной, то находить промежуточную точку на кривой. И в результате получить массив точек на кривой.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
А этим методом вообще не следует пользоваться
А как же тогда получить параметр в точке пересечения? Собственно мне и точка-то не нужна, нужен параметр кривой. Я дальше по коду делю кривую на куски равной длины и никакого пути без использования параметров нет :(

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А как же тогда получить параметр в точке пересечения? Собственно мне и точка-то не нужна, нужен параметр кривой. Я дальше по коду делю кривую на куски равной длины и никакого пути без использования параметров нет :(
А какое это всё имеет отношение к этой теме? И откуда я должен был догадаться, что тебя не интересует точка, а нужен параметр?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение