Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Разбивка кривой

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Профессиональное
Предыдущая тема :: Следующая тема  
Автор Сообщение
vikk



Зарегистрирован: 13.09.2006
Сообщения: 87

СообщениеДобавлено: Чт Май 19, 2016 11:32 am    Заголовок сообщения: Разбивка кривой Ответить с цитатой

Как можно выполнить программно преобразование кривой в полилинию, подобно стандартному инструменту Drop B-spline Curv.
Так понимаю, готовой функции нет.
Хотя бы общий подход, если кто сталкивался.

Создание кривой по точкам, например, - mdlBspline_catmullRomCurve ()
Спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
beer



Зарегистрирован: 01.02.2006
Сообщения: 215
Откуда: Москва

СообщениеДобавлено: Чт Май 19, 2016 12:35 pm    Заголовок сообщения: Ответить с цитатой

В полилинию? или все таки LineString? Это не одно и тоже. Наиболе близким по смыслу к полилинии будет ComplexString на самом деле, потому что может как и полилиния совмещать в себе отрезки и дуги.

Но все же если я вас правильно понял, вы хотите все же получить из кривойц LineString. Любой TraversableElement (в том числе и Curve и бисплайн) Имеет метод PointAtDistance, увеличивая дистанцию в цикле вы получмите массив точек из которого потом построите желаемый LineString

в MDL это будет функция mdlElmdscr_pointAtDistance
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
vikk



Зарегистрирован: 13.09.2006
Сообщения: 87

СообщениеДобавлено: Пт Май 20, 2016 10:26 am    Заголовок сообщения: Ответить с цитатой

Да, надо получить LineString. Хотя и ComplexString подойдет, без разницы. Нужен набор простых элементов.
Не ожидал, что mdlElmdscr_pointAtDistance() работает с кривыми, то что нужно.
Искал только среди функций mdlBspline_...()
Спасибо за подсказку.
С методами трудно у меня, только API MDL
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
beer



Зарегистрирован: 01.02.2006
Сообщения: 215
Откуда: Москва

СообщениеДобавлено: Пт Май 20, 2016 5:18 pm    Заголовок сообщения: Ответить с цитатой

vikk писал(а):

Не ожидал, что mdlElmdscr_pointAtDistance() работает с кривыми, то что нужно.


Он еше и с шейпами работает, и с дугами и элипсамии. Вообще со всем к чему применимо понятие "дистанция от начала"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Профессиональное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group