2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

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

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Вопрос по выводу уравнения кривой Безье
Сообщение29.09.2008, 17:44 
Аватара пользователя


20/06/07
179
В известной книге Шикина и Плиса "Кривые и поверхности на экране компьютера" есть раздел про кривые Безье, в котором приводится параметрическое уравнение кривой Безье и уравнение, эквивалентное ему, но в матричной форме. Пробую решить, но результат преобразования матриц не соответствует уравнению.
Итак, в матричной форме выражение для радиус-вектора выглядит следующим образом:

$\[{\mathbf{R}}\left( t \right) = {\mathbf{PMT}}\]$,

где $\[{\mathbf{R}}\left( t \right) = \left( {\begin{array}{*{20}c}   {x\left( t \right)}  \\   {y\left( t \right)}  \\   {z\left( t \right)}  \\ \end{array} } \right)\]$, $\[{\mathbf{M}} = \left( {\begin{array}{*{20}c}   1 & { - 3} & 3  & 1  \\   0 & 3 & { - 6} & 3  \\   0 & 0 & 3 & { - 3}  \\   0 & 0 & 0 & 1  \\ \end{array} } \right)\]$, $\[{\mathbf{T}} = \left( {\begin{array}{*{20}c}   {t^0 }  \\   {t^1 }  \\   {t^2 }  \\   {t^3 }  \\ \end{array} } \right)\]$,
$\[{\mathbf{P}} = \left( {\begin{array}{*{20}c}   {{\mathbf{P}}_0 } & {{\mathbf{P}}_1 } & {{\mathbf{P}}_2 } & {{\mathbf{P}}_3 }  \\ \end{array} } \right) = \left( {\begin{array}{*{20}c}   {x_0 } & {x_1 } & {x_2 } & {x_3 }  \\   {y_0 } & {y_1 } & {y_2 } & {y_3 }  \\   {z_0 } & {z_1 } & {z_2 } & {z_3 }  \\ \end{array} } \right)\]$.

После подстановки $\[{\mathbf{P}}\]$, $\[{\mathbf{M}}\]$ и $\[{\mathbf{T}}\]$ в выражение для $\[{\mathbf{R}}\left( t \right)\]$ должно получиться следующее параметрическое уравнение:
$\[{\mathbf{R}}\left( t \right) = \left( {\left( {\left( {1 - t} \right){\mathbf{P}}_0  + 3t{\mathbf{P}}_1 } \right)\left( {1 - t} \right) + 3t^2 {\mathbf{P}}_2 } \right)\left( {1 - t} \right) + t^3 {\mathbf{P}}_3 \]$.

Меня интересует двумерный случай, поэтому при подстановке вектора $\[{\mathbf{P}}\]$ в выражение для $\[{\mathbf{R}}\left( t \right)\]$, компоненты его третьей ($\[z\]$) координаты -- $\[z_0 \]$, $\[z_1 \]$, $\[z_2 \]$ и $\[z_3 \]$ -- опускаю, т.е. решаю без них (т.к. третья координата не нужна). Но результат НЕ сходится с параметрическим уравнением.
Выкладки очень уж объемные, поэтому здесь их не привожу, но перепроверил дважды - результат один и тот же - не сходится с параметрическим уравнением $\[{\mathbf{R}}\left( t \right) = \left( {\left( {\left( {1 - t} \right){\mathbf{P}}_0  + 3t{\mathbf{P}}_1 } \right)\left( {1 - t} \right) + 3t^2 {\mathbf{P}}_2 } \right)\left( {1 - t} \right) + t^3 {\mathbf{P}}_3 \]$.

Возможно, я что упустил из вида, помогите разобраться.

Заранее благодарю за помощь.

 Профиль  
                  
 
 
Сообщение29.09.2008, 21:15 
Заблокирован


19/09/08

754
Перемножать можно матрицы размером m x n и n x k, где m,n.k -натуральные числа, причем в той последовательности, как они здесь записаны.Где первая буква- это число строк, вторая - число столбцов.
Ваши записи этому условию не удовлетворяют.

 Профиль  
                  
 
 
Сообщение29.09.2008, 21:43 
Аватара пользователя


20/06/07
179
Это Вы насчет матрицы M? Запись этой матрицы содержала опечатку. Сейчас я ее исправил.

 Профиль  
                  
 
 Re: Вопрос по выводу уравнения кривой Безье
Сообщение29.09.2008, 22:04 


29/09/06
4552
artful7 писал(а):
После подстановки $\[{\mathbf{P}}\]$, $\[{\mathbf{M}}\]$ и $\[{\mathbf{T}}\]$ в выражение для $\[{\mathbf{R}}\left( t \right)\]$ должно получиться следующее параметрическое уравнение:
$\[{\mathbf{R}}\left( t \right) = \left( {\left( {\left( {1 - t} \right){\mathbf{P}}_0  + 3t{\mathbf{P}}_1 } \right)\left( {1 - t} \right) + 3t^2 {\mathbf{P}}_2 } \right)\left( {1 - t} \right) + t^3 {\mathbf{P}}_3 \]$.

(0) Конечно, сначала надо разобраться размерами матриц.

(1) Вы слишком исказили простую, симметричную, традиционную, красивую формулу
$$R( t ) = P_0(1 - t)^3 + 3P_1(1 - t)^2t+3P_2(1 - t)t^2+P_3t^3,$$
зачем-то наплодив в ней скобок, множителей, етц. Я, признаться, не дал себе труда проверить, совпадает ли она с приведённой мною.

(2) Вы не умеете делать эти громоздкие выкладки каким-нибудь пакетиком, Maple, например?

(3) Вы слишком сложно кодируете свой ТЕХ, типа $\verb вместо $\verb. Хотя, возможно, за Вас это делает какой-то автомат (Maple, например?). Но если Вы всё это творите ручками...

 Профиль  
                  
 
 
Сообщение29.09.2008, 22:05 
Заблокирован


19/09/08

754
Предствьте конкретные матрицы, которые вы перемножаете (как Вы говорите двумерные), тогда посмотрим, проверим.

 Профиль  
                  
 
 
Сообщение29.09.2008, 22:33 
Аватара пользователя


20/06/07
179
vvvv писал(а):
Перемножать можно матрицы размером m x n и n x k, где m,n.k -натуральные числа, причем в той последовательности, как они здесь записаны.Где первая буква- это число строк, вторая - число столбцов.
Ваши записи этому условию не удовлетворяют.

Как я понимаю, m - это количество строк первой матрицы, n - количество столбцов первой матрицы. Вторая матрица должна содержать столько же строк, сколько первая матрица содержит столбцов. Разве это не соблюдается в первом перемножении ${\mathbf{PM}}$?

Добавлено спустя 7 минут 31 секунду:

Алексей К. писал(а):
(1) Вы слишком исказили простую, симметричную, традиционную, красивую формулу
$$R( t ) = P_0(1 - t)^3 + 3P_1(1 - t)^2t+3P_2(1 - t)t^2+P_3t^3,$$
зачем-то наплодив в ней скобок, множителей, етц. Я, признаться, не дал себе труда проверить, совпадает ли она с приведённой мною.


Нет нет! Я ничего не исказил. Читайте мой первый пост: именно такой вид параметрического уравнения приведен в книге Шикина и Плиса. Хотя они обе эквивалентны.

 Профиль  
                  
 
 
Сообщение29.09.2008, 23:02 
Заблокирован


19/09/08

754
И еще, в перемножаемых матрицах отсутствует переменная (t) ?!

 Профиль  
                  
 
 
Сообщение29.09.2008, 23:24 
Аватара пользователя


20/06/07
179
vvvv писал(а):
И еще, в перемножаемых матрицах отсутствует переменная (t) ?!
А матрица T?

Добавлено спустя 1 минуту 54 секунды:

Честно говоря, я так и не понял, зачем мне в первых постах указывали на несоответствие матриц при перемножении?

Добавлено спустя 6 минут 48 секунд:

vvvv писал(а):
Предствьте конкретные матрицы, которые вы перемножаете (как Вы говорите двумерные), тогда посмотрим, проверим.


Перемножаемые матрицы следующие.
$\[{\mathbf{P}} = \left( {\begin{array}{*{20}c}   {x_0 } & {x_1 } & {x_2 } & {x_3 }  \\   {y_0 } & {y_1 } & {y_2 } & {y_3 }  \\ \end{array} } \right)\]$

$\[{\mathbf{M}} = \left( {\begin{array}{*{20}c}   1 & { - 3} & 3 & 1  \\   0 & 3 & { - 6} & 3  \\   0 & 0 & 3 & { - 3}  \\   0 & 0 & 0 & 1  \\ \end{array} } \right)\]$

$\[{\mathbf{T}} = \left( {\begin{array}{*{20}c}   {t^0 }  \\   {t^1 }  \\   {t^2 }  \\   {t^3 }  \\ \end{array} } \right)\]$

 Профиль  
                  
 
 Re: Вопрос по выводу уравнения кривой Безье
Сообщение30.09.2008, 00:28 


06/12/06
347
artful7 писал(а):
...
Итак, в матричной форме выражение для радиус-вектора выглядит следующим образом:

$\[{\mathbf{R}}\left( t \right) = {\mathbf{PMT}}\]$,

где $\[{\mathbf{R}}\left( t \right) = \left( {\begin{array}{*{20}c}   {x\left( t \right)}  \\   {y\left( t \right)}  \\   {z\left( t \right)}  \\ \end{array} } \right)\]$, $\[{\mathbf{M}} = \left( {\begin{array}{*{20}c}   1 & { - 3} & 3  & 1  \\   0 & 3 & { - 6} & 3  \\   0 & 0 & 3 & { - 3}  \\   0 & 0 & 0 & 1  \\ \end{array} } \right)\]$, $\[{\mathbf{T}} = \left( {\begin{array}{*{20}c}   {t^0 }  \\   {t^1 }  \\   {t^2 }  \\   {t^3 }  \\ \end{array} } \right)\]$,
$\[{\mathbf{P}} = \left( {\begin{array}{*{20}c}   {{\mathbf{P}}_0 } & {{\mathbf{P}}_1 } & {{\mathbf{P}}_2 } & {{\mathbf{P}}_3 }  \\ \end{array} } \right) = \left( {\begin{array}{*{20}c}   {x_0 } & {x_1 } & {x_2 } & {x_3 }  \\   {y_0 } & {y_1 } & {y_2 } & {y_3 }  \\   {z_0 } & {z_1 } & {z_2 } & {z_3 }  \\ \end{array} } \right)\]$.

В матрице $\[{\mathbf{M}}$ неправильный знак при единице. Должно быть
$$\[{\mathbf{M}} = \left( {\begin{array}{*{20}c}   1 & { - 3} & 3  & -1  \\   0 & 3 & { - 6} & 3  \\   0 & 0 & 3 & { - 3}  \\   0 & 0 & 0 & 1  \\ \end{array} } \right)\]$$.
artful7 писал(а):
После подстановки $\[{\mathbf{P}}\]$, $\[{\mathbf{M}}\]$ и $\[{\mathbf{T}}\]$ в выражение для $\[{\mathbf{R}}\left( t \right)\]$ должно получиться следующее параметрическое уравнение:
$\[{\mathbf{R}}\left( t \right) = \left( {\left( {\left( {1 - t} \right){\mathbf{P}}_0  + 3t{\mathbf{P}}_1 } \right)\left( {1 - t} \right) + 3t^2 {\mathbf{P}}_2 } \right)\left( {1 - t} \right) + t^3 {\mathbf{P}}_3 \]$.

Оно и получается, поскольку
$${\mathbf{MT}}
=
\left( 
\begin{array}{r}   
1 - 3t + 3t^2 - t^3 \\   
3t - 6t^2 + 3t^3  \\   
3t^2 - 3t^3  \\   
t^3   
\end{array} } 
\right)
=
\left( 
\begin{array}{r}   
(1 - t)^3\\   
3t(1 - t)^2 \\   
3t^2(1 - t)\\   
t^3   
\end{array} } 
\right)
$$.

 Профиль  
                  
 
 
Сообщение30.09.2008, 17:39 
Аватара пользователя


20/06/07
179
ДА!

Вчера вечером, когда я решил еще раз выполнить подстановку и проверить матричную запись, я тоже начал смутно догадываться, что дело не в ошибке моих подстановок, а в последней нижней единице из матрицы $\[{\mathbf{M}}\]$ Шикина и Плиса. Даже в справочник полез, чтобы проверить, как раскладывается $\[\left( {1 - t} \right)^3 \]$. Там прямо напрашивалось выражение $\[1 - 3t + 3t^2  - t^3 \]$ вместо получаемого $\[1 - 3t + 3t^2  + t^3 \]$ из-за ошибки в матрице $\[{\mathbf{M}}\]$. На опечатку это не похоже, т.к. такие же матрицы (с ошибкой) встречаются в книге и дальше.

Спасибо, что подтвердили мои сомнения насчет матрицы.

Добавлено спустя 1 час 7 минут 21 секунду:

Вот еще вопрос: почему базисная матрица в кубической кривой Безье заполнена именно так, а не иначе?

 Профиль  
                  
 
 Если я правильно понял Ваш вопрос...
Сообщение30.09.2008, 17:55 


29/09/06
4552
Потому что, по определению, кривая Безье есть
$$R_n( t ) = \sum\limits_{i=0}^n C_{n}^{i} P_i t^i (1 - t)^{(n-i)}$$
в частности,
$$R_3( t ) = P_0(1 - t)^3 + 3P_1(1 - t)^2t+3P_2(1 - t)t^2+P_3t^3,$$
Из этого и получается такое заполнение матрицы.

 Профиль  
                  
 
 
Сообщение30.09.2008, 18:26 
Аватара пользователя


20/06/07
179
А разве уравнение Изображение получается не в результате подстановки в $\[{\mathbf{R}}\left( t \right) = {\mathbf{PMT}}\]$ векторов $\[{\mathbf{P}}\]$, $\[{\mathbf{M}}\]$ и $\[{\mathbf{T}}\]$?

Добавлено спустя 5 минут 50 секунд:

Матрица определяет вид уравнения или наоборот, из уравнения определяются элементы строк и столбцов матрицы?

 Профиль  
                  
 
 
Сообщение30.09.2008, 19:00 


29/09/06
4552
Уравнение здесь изначально, в форме полиномов Бернштейна.
Посмотрите, как естественно это для "кривых" первого порядка.
Ежелеи кому-то хочется иметь это в матричном виде --- флаг в руки, пусть выводит... :?
Вот статья в Wikipedii (в русской тоже есть)

 Профиль  
                  
 
 
Сообщение30.09.2008, 19:07 
Аватара пользователя


20/06/07
179
Понятно, значит базисная матрица получается из уравнения.

А зачем переводить все в матричный вид, если для алгоритмизации удобнее параметрическое уравнение $\[{\mathbf{R}}\left( t \right) = \left( {\left( {\left( {1 - t} \right){\mathbf{P}}_0  + 3t{\mathbf{P}}_1 } \right)\left( {1 - t} \right) + 3t^2 {\mathbf{P}}_2 } \right)\left( {1 - t} \right) + t^3 {\mathbf{P}}_3 \]$?

 Профиль  
                  
 
 
Сообщение30.09.2008, 21:03 


29/09/06
4552
artful7 в сообщении #147602 писал(а):
А зачем переводить все в матричный вид...?
Не знаю. Может, по Маяковскому ---

\noindent Виды всякие нужны,\\
Виды всякие важны!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group