Сообщество программистов Autodesk в СНГ

Статьи => Опубликованные статьи => Тема начата: ADSK от 07-09-2016, 23:33:13

Название: Получение точек пересечения кривой и плоскости
Отправлено: ADSK от 07-09-2016, 23:33:13
Получение точек пересечения кривой и плоскости (http://adn-cis.org/poluchenie-tochek-peresecheniya-krivoj-i-ploskosti.html)
Название: Re: Получение точек пересечения кривой и плоскости
Отправлено: avc от 13-09-2016, 17:43:27
Описанный метод хорошо работает, когда надо определить количество точек пересечения. Но надо учитывать,что
1. в методе содержится очень длинный цикл
2. точки находит приблизительно, они не лежат на кривой. Соответственно Curve.GetParameterAtPoint выдаст eGeneralModelingError. А Curve.GetClosestPointTo тоже нерабочий у сплайнов (всегда выдает конечные точки сплайна).
Поэтому логично сначала использовать метод проецирования кривой, затем метод подмены проекции на линию и только если ничего не работает - тогда уже пробовать линейную аппроксимацию.
Название: Re: Получение точек пересечения кривой и плоскости
Отправлено: avc от 13-09-2016, 17:48:18
А на что можно заменить метод GetGeCurve в автокаде 2012 ? Компилятор пишет, нет такого
Название: Re: Получение точек пересечения кривой и плоскости
Отправлено: Александр Ривилис от 13-09-2016, 23:18:03
2. точки находит приблизительно, они не лежат на кривой.
Точность очень высока и ты можешь управлять ею.
Соответственно Curve.GetParameterAtPoint выдаст eGeneralModelingError
А этим методом вообще не следует пользоваться, особенно если возможны петли у кривой.
А на что можно заменить метод GetGeCurve в автокаде 2012 ?
Только написать этот метод самому. При этом ограничится только теми типами кривых (Curve), которые у тебя могут использоваться (например, только Spline и Polyline3d), так как в общем случае это достаточно сложно. Можно вообще не пользоваться этим методом, а использовать метод Curve.GetPointAtParameter, вычисляя величину хорды и если она больше заданной, то находить промежуточную точку на кривой. И в результате получить массив точек на кривой.
Название: Re: Получение точек пересечения кривой и плоскости
Отправлено: avc от 14-09-2016, 00:47:28
А этим методом вообще не следует пользоваться
А как же тогда получить параметр в точке пересечения? Собственно мне и точка-то не нужна, нужен параметр кривой. Я дальше по коду делю кривую на куски равной длины и никакого пути без использования параметров нет :(
Название: Re: Получение точек пересечения кривой и плоскости
Отправлено: Александр Ривилис от 14-09-2016, 10:06:48
А как же тогда получить параметр в точке пересечения? Собственно мне и точка-то не нужна, нужен параметр кривой. Я дальше по коду делю кривую на куски равной длины и никакого пути без использования параметров нет :(
А какое это всё имеет отношение к этой теме? И откуда я должен был догадаться, что тебя не интересует точка, а нужен параметр?