Нормаль не перпендикулярна касательной (vlax-curve-getsecondDeriv)
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нормаль не перпендикулярна касательной (vlax-curve-getsecondDeriv)

Нормаль не перпендикулярна касательной (vlax-curve-getsecondDeriv)

Ответ
Поиск в этой теме
Непрочитано 07.03.2015, 23:23 #1
Нормаль не перпендикулярна касательной (vlax-curve-getsecondDeriv)
mmax
 
Программист широкого профиля.
 
Челябинск
Регистрация: 08.09.2005
Сообщений: 722

Возникла задача по программному рисованию нормалей и касательных. Решил прибегнуть к помощи vlax-curve* функций.

Вот простейший код который рисует это дело в некой точке с параметром 0,5.

Код:
[Выделить все]
 (setq obj (vlax-ename->vla-object (car (entsel))))

(setq par 0.5)




(vla-move
	(vla-AddLine 
		(vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) 
		
		(vlax-3D-point (list 0 0 0))
		(vlax-3D-point (vlax-curve-getfirstDeriv obj par))
	)
	(vlax-3D-point (list 0 0 0))
	(vlax-3D-point (vlax-curve-getpointatparam obj par))
)

(vla-move
	(vla-AddLine 
		(vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) 
		
		(vlax-3D-point (list 0 0 0))
		(vlax-3D-point (vlax-curve-getsecondDeriv obj par))
	)
	(vlax-3D-point (list 0 0 0))
	(vlax-3D-point (vlax-curve-getpointatparam obj par))
)
Все бы хорошо, но нормаль получается перпендикулярна касательной только у дуги, окружности и дуговой полилинии. Короче на правильных окружностях и их частях.

Но вот у сплайнов и эллипсов касательная рисуется правильно, а вот нормаль получается не перпендикулярной касательной.
Я давно не занимался аналитической геометрией и в голову лезут мысли, что у такого типа кривых так и должно быть, хотя очень сомневаюсь в этом.

У кого какие мыли по этому поводу? Может для данного типа кривых в автокаде координаты начала вектора не равны нулю?
Просмотров: 2521
 
Непрочитано 08.03.2015, 00:41
1 | #2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от mmax Посмотреть сообщение
У кого какие мыли по этому поводу?
Просто вспомни что такое вторая производная.
Что же касается твоей задачи, то ты можешь получить нормаль из касательной и вторая производная тебе не нужна.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нормаль не перпендикулярна касательной (vlax-curve-getsecondDeriv)