2014 dxdy logo

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

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




На страницу 1, 2, 3  След.
 
 Кривая по двум точкам и касательным векторам
Сообщение21.09.2011, 21:16 
Известны 2 граничные точки кривой и углы наклона касательных в них.
Нужно построить гладкую кривую, удовлетворяющую этим условиям.

1. Мне нужны придумать различные виды кривых (не особо сложных, без лишних перегибов).

Пока есть 4 вида:
1) кубический полином y(x). из 4 уравнений находится 4 неизвестных коэффициента
$y(x)=a_3 x^3 + a_2 x^2 + a_1 x + a_0$
2) кубическая кривая Безье с 4 управляющими точками - 2 совпадают с заданными, 2 находятся на касательных
$y(t)=...;x(t)=...$ (известная формула)
3) эллипс с 4 неизвестными параметрами (растяжение/сжатие по x, y, и сдвига по x, y)
без поворота эллипса (оси эллипса параллельны x, y).
$\frac{(x-x_0)^2}{a^2}+ \frac{(y-y_0)^2}{b^2}=1$
4) синус (с масштабированием по осям и позиционированием)
$y(x)=c \sin(a x + b) + d$

2. почему кривые 1) и 2) третьей степени, но в случае Безье степеней свободы больше - можно бесконечное количество кривых построить удовлетворяющих условиям задания?

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение21.09.2011, 21:20 
Аватара пользователя
5) Экспонента

$y(x)=a e^{bx^c}$

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение21.09.2011, 21:24 
Аватара пользователя
Математическая терминология лукава. Как обобщённая функция - это не функция, так и кубическая кривая Безье - это не кривая третьей степени.

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение21.09.2011, 21:48 
как лучше строить кривую?
если искать как функцию $y(x)$, то для заданного $x$ не может быть несколько $y$
параметрически?

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение21.09.2011, 22:09 
Аватара пользователя
У окружности таких иксов сколько хочешь!

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение21.09.2011, 23:24 
8bit в сообщении #484994 писал(а):
2) кубическая кривая Безье с 4 управляющими точками - 2 совпадают с заданными, 2 находятся на касательных
Ну так что Вам ещё нужно? Афигенное семейство решений, и всегда есть. Даже если понадобится зафиксировать кривизны на концах (иными словами - вторые производные), задача решабельна (вопрос лишь в том, будет ли решений 4,3,2,1, или 0).

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

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение21.09.2011, 23:39 
Мне нужно придумать (или найти) различные виды кривых. Лучше наверное чтобы заданы были параметрически, а не как $y(x)$, иначе решение не для любых исходных данных будет существовать.

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 11:19 
8bit в сообщении #484994 писал(а):
почему кривые 1) и 2) третьей степени, но в случае Безье степеней свободы больше

Потому что случай Безье выглядит примерно как $$Ax^3+Bx^2y+Cxy^2+Dy^3+Ex^2+Fxy+\text{\tiny извините, у меня буквы кончаются}+Vy+W=0.$$

-- 22 сен 2011, 12:23 --

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

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 19:13 
Алексей К. в сообщении #485150 писал(а):
Ваши фокусы с эллипсами можно заменить рациональной кривой (тоже иногда называемой Безье) второго порядка. Приличное решение будет не всегда: например, бесконечно удалённая точка может затесаться в кривую. Но если граничные условия допускают эллипс, то он и будет найден. Хоть наклонный, хоть круглый.


Спасибо, посмотрю. Правильно ли я понял, что рациональную кривую (Безье) можно представить как проекцию трехмерной кривой на плоскость. При этом третьей координатой будет служить вес w. Если веса опорных точек одинаковы, то получим обычную кривую Безье. Меняя веса, будем изменять поведение кривой возле опорных точек.

У меня практическая задача, и точки расположены достаточно близко друг от друга.

Еще пока искал информацию, нашел еще одну рациональную кривую, NURBS (Non-Uniform Rational B-spline).
NURBS-кривая может и сегмент эллипса представлять и параболу, гиперболу.
Только пока не разобрался сколько неизвестных у этой кривой и хватит ли 4 уравнений чтобы их найти.
Стоит ли рассматривать NURBS?

И еще вопрос, моя задача напоминает интерполяцию функции, с двумя известными точками. Методы интерполяции сплайнами подойдут (сплайн Эрмита, Катмулла-Рома, кКубический сплайн, сплайн Акимы)?

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 19:40 
8bit в сообщении #485295 писал(а):
Правильно ли я понял, что рациональную кривую (Безье) можно представить как проекцию трехмерной кривой на плоскость.
Есть такая интерпретация.

Цитата:
При этом третьей координатой будет служить вес w. Если веса опорных точек одинаковы, то получим обычную кривую Безье. Меняя веса, будем изменять поведение кривой возле опорных точек.
Наверное, некая путаница в словах. Если $x(t)=X(t)/W(t),\; y(t)=Y(t)/W(t)$, то функцию $W(t)$ кто-то, наверное, назовёт весом. Равным образом это слово применится и к коэффициентам $w_{0,1,2}$ в выражении $$    \vec{r}(t)=\dfrac{P_0w_0(1{-}t)^2+2P_1w_1(1{-}t)t+P_2w_2t^2}
                       {w_0(1{-}t)^2+2w_1(1{-}t)t+w_2t^2},\quad w_0\not=0,\quad w_2\not=0$$(здесь без ограничения общности можно назначить $w_0=1, w_2=\pm1$). Вот в Вашей фразе оба варианта, по-моему, и перемешаны.

-- 22 сен 2011, 20:45 --

Цитата:
NURBS-кривая может и сегмент эллипса представлять и параболу, гиперболу.
Все эти штуки я Вам выше в формуле и написал. Нурбсами предлагаю не заморачиваться. Сделают они то же самое, только у Вас будет ещё перелом головы.

-- 22 сен 2011, 21:05 --

Кстати, кривую с перегибом мы здесь не получим. Т.е. если по граничным условиям перегиб будет неизбежен, то она загиперболится, чтобы перегнуться в бесконечности.

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 21:06 
8bit в сообщении #485295 писал(а):
И еще вопрос, моя задача напоминает интерполяцию функции, с двумя известными точками.
Лично я пока не вижу, что она там напоминает. У Вас везде намешана интерполяция функции и интерполяция кривой. Вот и в заголовке какие-то производные упомянуты. А речь, скорее всего, о касательных векторах.

Вот Вы взяли какие-то две точечки и две "производные", и провели кубическую параболу. А повернули всё на 90 градусов, и метод уже не работает. И что делать с бывшими производными при таком повороте? И решение есть (предыдущая парабола, тоже повёрнутая), а найти как бы не можем... Уже потому что не будет функция $y(x)$. Стало быть, какие бы точки ни были, надо их повернуть-перенести на ось абсцисс, решить задачу, и потом всё вместе вернуть взад. А если от левой точки касательная уходит влево, а от правой --- вправо? Тогда метод надо другой, $y(x)$ не проходит... А если речь всё же не о касательных, а правда о каких-то производных?

Как-то чётче надо формулировать. Мне пока непонятно, дорогу Вы строите, или погоду предсказываете, или ещё чего. (Ясно лишь, что что-то простое, и Нурбсы впихивать ни к чему).

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 21:49 
Да 2 точки и касательные вектора в них заданы. неправильно сформулировал вначале.
Думаю рациональные кривые (Безье) самое то. Буду смотреть.

И чтобы доконца разобраться, рациональная кривая (Безье) представляет все множество кривых вида
$A x^3 + B y^3 + C x^2 y+ D x y^2 + E x^2 + F y^2 + G x y + H x + I y + J = 0$ (1)
или только какое-то подмножество? И будет существовать кривая вида (1), проходящая через заданные 2 точки и имеющая заданные касательные вектора, но при этом не являющаяся рациональной кривой (Безье)

А насчет $y(x)$ Вы правы, для моей задачи не подходит или только ограниченно, при "хороших" входных данных.

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 22:21 
Я в математике не очень силён (изучал только те темы, которые мне приходилось программировать, когда я программистом служил). Что-то похожее на Ваши задачки было, и я тогда нашёл книгу Newton I. Enumeratio linearum tertii ordinis. Optics, London, 1704 (ну, тот самый Ньютон, который в физике обычно фигурирует). Он мне поведал (числа передаю неуверенно, по памяти), что из 72-х типов кривых третьего порядка только 3 типа допускают полиномиальную парпметризацию (чисто Безье). Ну и я сам как-то это вывел. Про рациональные и он не написал, и я не обдумал; и алгебраическую геометрию не выучил. Но почему-то уверен, что
8bit в сообщении #485332 писал(а):
И чтобы доконца разобраться, рациональная кривая (Безье) представляет все множество кривых вида (1) или только какое-то подмножество?
не все, далеко не все, хилое подмножество.

Да и на хрена Вам все??? Не жадничайте! :-)

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение22.09.2011, 23:27 
Как же я мог забыть про любимые двудужки? Их, собственно, для этой задачи и придумали.

Гляньте: каждая картинка даёт 1 (один) набор Ваших граничных условий (точка $A$ с вектором $\alpha$ и точка $B$ с вектором $\beta$). А кривую, этот набор удовлетворяющую, можно провести через (почти) любую точку плоскости!
Ну не стыдно такие задачки задавать? :D

 
 
 
 Re: Кривая по 2 точкам и 2 производным
Сообщение23.09.2011, 13:43 
выглядит красиво, спасибо, буду разбираться

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


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