|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как сделать аппроксимацию дуги в 3х координатах?
Регистрация: 16.01.2014
Сообщений: 6
|
||
Просмотров: 3904
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
amyskin, ты бы хоть язык обозначил, да и остальные подробности - для AutoCAD пишешь или как...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.01.2014
Сообщений: 6
|
Цитата:
Нужно взять дугу в autocad и передать в нужную программу уже координаты апроксимации (x,y,z) |
|||
![]() |
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 506
![]() |
1. по трем точкам определить плоскость (A,B,C,D),
2. задать начало координат в этой пл-ти (взять одну из точек) 3. найти координаты в пл-ти двух других точек. 4. в этой плоскости по местным координатам построить то что вы умеете в 2D 5. перейти обратно в 3D - по двум локальным координатам любой точки и смещения локального начала координат отн. глобального найти третью координату (подставить в ур-ие по п1). 6. передать что надо куда надо... |
|||
![]() |
|
||||
Регистрация: 16.11.2008
Сообщений: 55
|
Когда-то на C# писал программу, где надо было построить дугу по трем точкам. Выход нашел при помощи уравнения параболы (квадратное уравнение): y=ax^2+bx+c. Коэффициенты a, b, c рассчитываются по формулам, которые можно найти в википедии (пункт Расчёт коэффициентов квадратного уравнения).
http://ru.wikipedia.org/wiki/%D0%9F%...BE%D0%BB%D0%B0 ----- добавлено через 36 сек. ----- Если как-то поможет, могу поделиться кодом. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Даны три точки - центр дуги и начало и конец дуги
Под эти исходные данные подойдут 2 дуги. Также возможен случай когда точки лежат на прямой -> бесконечно много дуг >>а вот когда их три как быть? как уже сказали - дуга плоский примитив и лежит в локальной системе координат на плоскости z=0 Я бы в данном случае делал так: Посчитал угол дуги (назову его A), это угол между (P2-P0) и (P1-P0). Посчитал нормаль дуги (ось 0Z) это нормализованное векторное произведение (P1-P0)*(P2-P0) если A<pi и (P2-P0)*(P1-P0) если A>pi За ось 0X дуги принял бы нормализованный вектор (P1-P0) Посчитал ось 0Y дуги это векторное произведение 0Z*0X По 0X,0Y,0Z и P0 построил бы матрицу перехода из системы координат дуги в мировую СК. а дальше бы как в первом посте, с учетом того что начальный угол=0, конечный=A и домножая результат (x,y,0) на матрицу перехода |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Посмотри здесь:
http://adndevblog.typepad.com/autoca...tated-ucs.html http://adndevblog.typepad.com/autoca...ice-versa.html может быть полезно |
|||
![]() |
|
||||
Регистрация: 16.01.2014
Сообщений: 6
|
|
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать сопряжение в нужной точке? | rtyu | AutoCAD | 4 | 08.08.2012 16:43 |
Из чего сделать несущие стены для индивидуального жилого дома | Минька | Конструкции зданий и сооружений | 32 | 24.03.2009 11:49 |
Как сделать сделать заливку на растровой подложке? | Особое мнение | Разное | 2 | 13.05.2008 10:30 |
как из ДУГИ сделать линию? | ilka_t | AutoCAD | 6 | 11.10.2007 12:12 |
Дуги в ACAD 2k5 | Iam | AutoCAD | 5 | 19.05.2005 23:32 |