Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рендеринг объекта сплайн DWG-формата, Рендеринг  
:(
    Опции темы
ildar323
Дата 31.12.2013, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.3.2011

Репутация: нет
Всего: нет



Постановка задачи.
По спецификации формата dwg , сплайны можно задавать двумя разными способами:
1. Даны определяющие точки и узловая параметризация. Т.е., когда мы в
autocad`е рисуем этим способом, отмечаем точки, через которые кривая
должна проходить, узловая параметризация по умолчанию выставляется
хордовая по-моему.
Узловая параметризация может принимать значения: хордовая,
квадратичная, равномерная, пользовательская (используется при задании
способом 2, по-моему).
2. Сплайн задается по-определению, даны управляющие вершины.  Т.е.
когда мы в autocad`е рисуем этим способом, отмечаем вершины сплайна и
все. Какой узловой вектор при этом используется я не знаю, это тоже
надо выяснить. Хотя, для решения задачи можно считать, что он
известен, т.к. в файле dwg, при таком задании сплайна, узловой вектор
будет известен.
Еще есть веса, если они равны -1, они считаются равными 1.
Подробнее, см. спецификацию, стр. 134-135.

Задачи, которые нужно решить: имея данные 1 получить данные 2 и наоборот, имея данные 2 получить данные 1;
т.к. уже есть метод отрисовки сплайна, который принимает 3 параметра: определяющие точки, узловой вектор, управляющие вершины, пожтому;
или можно сразу нарисовать сплайн имея только данные 1 не вычисляя данные 2 и наоборот?
Задачи нужно решить только для сплайнов степени 3.


*************************************************************

Чего я достиг на текущий момент.
По книге Роджерс_и_Адамс_-_Математические_основы_машинной_графики,
2001 (в интернете можно скачать, онлайн версия)
изучая главу 5 нашел частичное решение задачи 1 для хордовой параметризации.
Ссылка на страницу с задачей (см. "Пример 5-17 Подгонка В-сплайна"):
http://sernam.ru/book_mm3d.php?id=95
Для полной ясности, можно сразу прочитать всю главу 5 с начала, читается легко и быстро.
Вопрос возникает при построении матрицы [N]. Там, при решении, из 
уравнения 
Код

[D]=[N][B]
 сразу приводится матричный вид с уже вычисленным
[N]. В книге даны все формулы, однако, у меня получаются совсем другие
числа. Ни одни числа не совпадают, кроме первой строки. Получается не
квадратная матрица [N], т.е. она не обратима, а должна быть обратима.
Простые формулы Кокса-де Бура, а никак ни сходится.
В поисках дополнительного материала нашел еще одну книгу Curves and Surfaces for CAGD, где
приводится матрица [N] в виде 3-х диагональной (стр. 154, параграф 9.4 C2 Cubic Spline Interpolation).


*************************************************************

Во вложении пример сплайна в формате dxf (в dxf объект сплайн содержит все нужные данные).

Еще, есть несколько вопросов:
1. В приведенном примере сплайна, узловой вектор содержит большие значения, чем это объяснить, ведь по книгам узловой вектор имеет другой вид?
2. Правильно ли я понимаю, сплайн описывается последовательностью кривых Безье?

Это сообщение отредактировал(а) ildar323 - 31.12.2013, 13:11

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Spline5.zip 455,21 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.