2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 
Сообщение30.09.2008, 21:45 
Аватара пользователя
Прикольно...

А если серьезно? Зачем матричный вид?

 
 
 
 
Сообщение30.09.2008, 22:09 
Алексей К. в сообщении #147632 УЖЕ писал(а):
Не знаю.
Я с ними, с Безьями, много имел дела, и не встречал, чтобы пользовались матрицами. Может, кто и расскажет нам. Не я.

 
 
 
 Собственно --- о выводе уравнения.
Сообщение01.10.2008, 05:58 
artful7, Вы осознали, откуда берётся обсуждаемое уравнение?

Есть две точки, A и B. Берём их взвешенное среднее, $w_1A+w_2B$, типа $(2/3)A+(1/3)B$. Получаем некую среднюю точку, поближе к A. Веса удобнее выражать "в процентах", т.е. принять $w_1+w_2=1$, или $w_1=(1-t),\;w_2=t$. Получаем отрезок $AB(t)=A(1-t)+Bt$.
А если "взвесить" два отрезка, $AQ_1$ и $Q_2B$? --- думаем. Подумали --- сделали:
$$AQ_1Q_2B(t)=  AQ_1(t)\cdot(1-t)+Q_2B(t)\cdot t=
A(1-t)^2+(Q_1+Q_2)t(1-t)+Bt^2.$$
Рисуем (линейки достаточно, веса берём 0/5,1/5,2/5,3/5,4/5,5/5), строим, балуемся. Видим (уже из формулы), что результат зависит только от положения средней точки $P=\frac12(Q_1+Q_2)$ и не фиг для этой конструкции лишние параметры держать:
$$APB(t)=  AP(t)\cdot(1-t)+PB(t)\cdot t=A(1-t)^2+2P(1-t)t+Bt^2$$.
Любуемся полученной параболой, как она вписывается в ломаную $APB$.

Дальше естественным образом приходит мысль --- а "взвешу"-ка я две параболы, $AP_1P_2$ и $P_1P_2B$. Вау, как эта кривулька здорово вписывается в ломаную $AP_1P_2B$, как бы эту ломаную не ломали!

Дальше можно много играть, искать "вычислительно-идеальную запись", в форме Бернштейна раскрыть все скобки и назвать это "в форме Фергюссона", матричный вид придумать. Когда не было телевизоров или сериалов, люди столько всего про них напридумали --- и тебе пирамидальные алгоритмы, и цветение сакуры (blossoming? и слово и суть забылись...), книжек аглицких --- тонны понаписали.

 
 
 
 
Сообщение01.10.2008, 08:50 
Аватара пользователя
Это Вы изложили статью из Википедии http://en.wikipedia.org/wiki/Bezier_curves?

 
 
 
 
Сообщение01.10.2008, 09:16 
Нет, я ни у кого не списывал и даже не подглядывал. Просто случилась бессонница (4:58 по местному) и с ней возможность написать подробнее. Типа было и не лень, и не некогда.

 
 
 
 
Сообщение01.10.2008, 20:38 
Аватара пользователя
Я имел ввиду не Ваше подглядывание/неподглядывание, а смысл излагаемого материала. В Википедии очень наглядная анимированная картинка построения кривой.

Вот только непонятно, что Вы имели ввиду под "формой Фергюссона"?

А также под вычислительно-идеальной записью?

 
 
 
 
Сообщение01.10.2008, 22:13 
artful7 в сообщении #147828 писал(а):
В Википедии очень наглядная анимированная картинка построения кривой.
Вот я её, на всякий случай, и покомментировал формулами.
artful7 в сообщении #147828 писал(а):
что Вы имели ввиду под "формой Фергюссона"?
Будем считать, устаревший термин. Когда полиномы расписаны просто по степеням $t$, что скрывает алгоритм взвешивания, и на что, в частности, нацелены Ваши матрицы. Действительно, термин давно не попадался. Мы с ним устарели.

artful7 в сообщении #147828 писал(а):
А также под вычислительно-идеальной записью?
Ну, намекал на Ваше замечание и расстановку скобок в
artful7 писал(а):
для алгоритмизации удобнее параметрическое уравнение $\[{\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 \]$?
что, вероятно, вполне обосновано. Сильно не заморачивайтесь. Важным (полезным) я считал понимание происхождения кривой (не всем сразу понятны эти анимационные картинки, Вы, похоже, их поняли).

 
 
 
 Re: Вопрос по выводу уравнения кривой Безье
Сообщение16.03.2010, 22:34 
Добрый день.
Алексей К. если вам не трудно не могли бы, Вы пояснить методы сшивания кривых Безье без скачка кривизны (непрерывность первой и второй производных)

 
 
 
 Re: Вопрос по выводу уравнения кривой Безье
Сообщение16.03.2010, 23:42 
Мне нетрудно пояснить любой вопрос (из тех немногих), в котором я разбираюсь. Тема кривых Безье несколько забыта (уже до появления этой темы), но что-то в памяти осталось. И, к тому же, много реальных специалистов на форуме имеется.

И мне, и им наверняка захочется уточнить Вашу проблему: чем Вас не устраивает обычный кубический сплайн, обеспечивающий непрерывность кривизны? Т.е. она автооматически "сшита", если я Вас правильно понял.

Возможно, Вы хотите, из тех или иных соображений, приписать заранее заданные значения кривизны (и, естественно, наклона касательной) в узлах "сплайна" (в смысле, кривой, проходящей строго через точки $P_0=(x_0,y_0)$, $P_1=(x_1,y_1)$, $P_2=(x_2,y_2)$, $\ldots$, $P_n=(x_n,y_n)$ и имеющей в кажлой точке заданные значения наклона касательной $\tau_i$ и кривизны $k_i$, что с формальным определением "сплайна" может конфликтовать). Тогда Ваша задача должна решаться отдельно на каждой хорде $P_iP_{i+1}$.

С такой задачкой я тоже возился. В архивах поковыряюсь, когда Вы уточните задачу. Насколько я помню, решение сводилось к уравнению 4-й степени, и были случаи неоднозначного построения (3 варианта). Не помню, были ли случаи отсутствия решений. Помню лишь, что алгебру в те годы я знал совсем плохо. :(

Не удивляйтесь, ежели модераторы перенесут Ваш (уточнённый) вопрос в форум "Помогите решить", где вопрос будет у всех на виду, либо отделят от этой темы в самостоятельную.

 
 
 
 Re: Вопрос по выводу уравнения кривой Безье
Сообщение17.03.2010, 00:34 
Задача в принципе не сложная(построение профиля лопаточной машины).
Есть координаты трех точек и значения наклонов касательных в них. Требуется провести кривую удовлетворяющею граничным условиям, при этом должны остаться механизмы управления формы кривой.(непрерывность первой и второй производных )

В качестве базовой кривой выбрал кривую Безье 5 порядка.
В средней точке стыкую две кривые.Стыковка по координате и первой производной вопросов не вызывают. Непрерывность второй производной обеспечиваю путем подбора соответствующего положения третьего узла одной из кривых.

Я вот думаю может как то проще можно решить вопрос сшивания кривых, либо решения задачи в целом.

 
 
 
 Re: Вопрос по выводу уравнения кривой Безье
Сообщение17.03.2010, 14:22 
ALL1828 в сообщении #298465 писал(а):
Задача в принципе не сложная(построение профиля лопаточной машины).
Слова "лопаточная машина" мне, к сожалению, ничего не говорят.
Интереснее было бы другое --- чем определяется форма профиля? Вы получаете её как решение некой механической задачи (диффура, например, т.е. довольно точно) и пытаетесь приблизить упомянутой Безьёй? Или Вас удовлетворяет визуальная оценка полученного профиля, регулируемая контрольными точками?
В последнем случае, весьма вольном, стремление сшить кривизну представляется мне не особо обоснованным, а лишь следованием традиции: "Вроде все обычно сшивают, сошью-ка и я. На всякий случай."

ALL1828 писал(а):
Есть координаты трех точек и значения наклонов касательных в них. Требуется провести кривую удовлетворяющею граничным условиям, при этом должны остаться механизмы управления формы кривой.(непрерывность первой и второй производных )

В качестве базовой кривой выбрал кривую Безье 5 порядка.


Со степенями выше 3 дела не имел: в компьютерной графике 3-х за глаза достаточно, а реальным геом. моделированием занимался в несколько ином аспекте, типа строительства дорог, без Безьёв.
(Опять бы не перепутать порядки и степени, а то ewert снова меня засечёт).

ALL1828 писал(а):
В средней точке стыкую две кривые.Стыковка по координате и первой производной вопросов не вызывают. Непрерывность второй производной обеспечиваю путем подбора соответствующего положения третьего узла одной из кривых.
Давайте различать узлы и контрольные точки. Узлы --- это те три точки $P_0,P_1,P_2$, через которые проходит Ваш профиль. На каждой ходре, $P_0P_1$ и $P_1P_2$, Вы дополнительно выбираете 4 контрольные точки; получаются контрольные полигоны $P_0A_0B_0C_0D_0P_1$ и $P_1A_1B_1C_1D_1P_2$. Кривая через дополнительные контрольные точки не проходит, с их помощью Вы управляете формой и, видимо, кривизной в месте сшивки.
Задача рассматривается почти независимо на каждой из двух хорд ("почти" = "кроме требований сшивки"). $G^1$-гладкость обеспечивается тем, что точки $D_0P_1A_1$ лежат на одной прямой-касательной.

Примерно это я и хотел услышать в качестве конкретизации задачи. Додумал сам, надеюсь, правильно. Замкнутость ($P_0=P_2$), если она и наличествует, роли не играет.

ALL1828 писал(а):
Я вот думаю может как то проще можно решить вопрос сшивания кривых, либо решения задачи в целом.
Я так не думаю. Сшивка производных гарантирует непрерывность кривизны, но не является обязательным условием. Но, полагаю, мы лишь усложним решение, записав условие равенства углов и кривизн в конце первого и в начале второго участков (т.е. два громоздких уравнения для $\tau,k$ вместо 4-х более простых для $x',y',x'',y''$). Надо брать мат-пакет, смотреть эти штуки, но не думаю, что что-то там окажется простым...
Что касается другого подхода к задаче в целом --- вряд ли могу чего-то предложить, я её всё же недостаточно чувствую. С дорогой попроще было бы. :)

Алексей К. в сообщении #254121 писал(а):
Как-то так: кривые Безье не очень заточены под задачки с кривизной, и ожидать простых-красивых-замкнутых выражений не приходится. А численные рассчёты несложнЫ.

 
 
 [ Сообщений: 26 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group