|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Точка пересечения объектов с нулевой координатой Z
AutoCAD/Civil3D LISP/C#
Санкт-Петербург
Регистрация: 15.08.2008
Сообщений: 1,701
|
||
Просмотров: 4073
|
|
||||
Мда, и правда: создаешь блок из одного примитива - все нормально, координата Z точки пересечения нулевая. Стоит добавить еще один примитив в блок - координата становится -1.0e-008. Видать какой-то глюк метода...
Что значит может ничего не быть в точке вставки? У блока может не быть точки вставки? |
||||
![]() |
|
||||
Цитата:
Цитата:
![]() |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да не парься - прими как факт или попробуй сам написать функцию нахождения точки пересечения ну хотя-бы прямой с окружностью - тебе по любому придеться вводить какой-нибудь допуск т.к. число Pi бесконечно, в Autodesk люди хоть и совсем не глупые - но не волшебники.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
Цитата:
На вот поразгребай что у меня валяется по векторной алгебре. Копирайты там вроде все в лиспах. PS посмотри сайт Евгения - он большой специалист в этой области. http://elpanov.com/index.php?id=34 Последний раз редактировалось Sleekka, 13.10.2009 в 11:22. Причина: добавил файлы и PS |
|||
![]() |
|
||||
На самом деле, вопрос из практического перешел в разряд теоретических. Была мысль найти точку пересечения блока и прямой, чтобы обрезать эту прямую по блоку, а оказывается, что точка пересечения определяется не по крайнему примитиву в составе блока, а по прямоугольной рамке вокруг блока. Придется, наверное, взрывать блок и определять точку пересечения с каждым примитивом в отдельности, а потом находить наиболее крайнюю... пока не знаю и готового решения не нашел.
По теме: еще с универа помню - если у всех точек линии, окружности, эллипса и пр... координата Z нулевая, то она в расчетах вообще не участвует - задача из трехмерной превращается в двухмерную. Вот еще такое наблюдение: Определяю по отдельности точки пересечения примитива LINE с примитивами CIRCLE и LWPOLYLINE - Z координаты точек пересечения 0.0. Объединяю CIRCLE и LWPOLYLINE в блок - Z координата точки пересечения -1.0e-008. Так что, думаю, что число "пи" и числа с плавающей точкой здесь ни при чем. Цитата:
|
||||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>координата Z нулевая, то она в расчетах вообще не участвует - задача из трехмерной превращается в двухмерную.
учавствует, просто она нулевая)) >>Так что, думаю, что число "пи" и числа с плавающей точкой здесь ни при чем. какраз при чем, ровно ноль при расчетах с плавающей точкой редко когда получится. И сравнивать числа с плавающей точкой с нулем (или между собой) нельзя, всегда нужно учитывать эту погрешность. не x=0, a abs(x)<eps не x=y, a abs(x-y)<eps то что погрешность получилась довольно большая, говорит о том что в расчетах учавствовал увадратный корень, обычно eps берется порядка 1e-15 |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Линия пересекает 3DГрань. Точка пересечения? | Bdod | AutoCAD | 22 | 09.01.2025 11:05 |
Развертка линии пересечения 3D объектов | alextv | Программирование | 3 | 14.06.2009 19:30 |
Нахождение точек пересечения объектов с заданной погрешностью на VBA | helpstud | Программирование | 3 | 07.05.2009 17:28 |
точка пересечения на полилинии | Mazai | Программирование | 2 | 19.05.2008 17:42 |
Линия пересечения объектов в 3d, где она? | fefe | AutoCAD | 3 | 01.02.2007 11:10 |