2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Кривая Безье как функция x(y), без параметра t
Сообщение05.05.2014, 23:28 
Условие: Даны на координатной плоскости точки $P_0$, $P_1$, $P_2$ (см. рисунок), образующие прямоугольный треугольник.

Задача: вывести формулу кривой, соединяющей точки $P_0$ и $P_2$, и, изменяя один параметр, менять её форму от прямой $P_0$P_2$ до максимально повторяющей контур прямого угла $P_0 P_1 P_2$, не выходя за рамки этого прямоугольного треугольника. Должна быть функция вида $y(x)$.

Изображение

Я выбрал для этого рациональную кривую Безье 2 порядка с переменным весом $w_1$ в точке $P_1$ и с весами $w_1$ и $w_2$в точках $P_0$ и $P_2$ равными 1.
Как раз и получается: $w_1=0$ мы имеем прямую $P_0P_2$, при $w_1\rightarrow\infty$ мы приближаемся к контуру прямого угла $P_0 P_1 P_2$, притом не выходя за рамки прямоугольного треугольника.

Вывел её параметрическую запись: $B(t)=\frac{(1-t)^2P_0+2t(1-t)P_1w_1+t^2P_2}{(1-t)^2+2t(1-t)w_1+t^2}$
Но вот незадача: мне нужна функция $y(x)$
В какую сторону думать?
Я догадываюсь, что если $x=f(t)$ и $y=g(t)$, то можно сделать как-то вроде $t=b(x)$ и тогда $y=g(b(x))$, но как оттуда выковырять $t$ ?

P.S. Я рассматривал другие варианты: гипербола или парабола по трём точкам ($P_0$, $P_2$ и дополнительная $O$ на диагонали прямоугольника)
Изображение
но тогда кривая может вылезти за границы треугольника, что противоречит условиям

P.P.S. Какой это вообще раздел математики? (чтобы правильно запрашивать помощь)

 
 
 
 Posted automatically
Сообщение06.05.2014, 01:15 
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
1. Все формулы запишите в соответствии с требованиями Правил форума, т.е. в $\TeX$.
Краткие инструкции можно найти здесь: topic8355.html и topic183.html.
Кроме этого, в теме Видео-пособия для начинающих форумчан можно посмотреть видео-ролик "Как записывать формулы".

2. Использование формул на рисунке не допускается. Рисунок можно оставить только с целью иллюстрации, как проходит кривая.

После того как исправите сообщение, сообщите об этом в теме Сообщение в карантине исправлено, и тогда тема будет возвращена.

 
 
 
 Posted automatically
Сообщение07.05.2014, 13:53 
Аватара пользователя
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»
вернул

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение07.05.2014, 19:36 
destination_sirius в сообщении #859600 писал(а):
P.P.S. Какой это вообще раздел математики? (чтобы правильно запрашивать помощь)
Просто замените в
destination_sirius в сообщении #859600 писал(а):
$B(t)=\frac{(1-t)^2P_0+2t(1-t)P_1w_1+t^2P_2}{(1-t)^2+2t(1-t)w_1+t^2}$
точки их координатами и выразите что нужно через что нужно. У вас будут два уравнения и три переменные $x,y,t$.

-- Ср май 07, 2014 22:38:40 --

destination_sirius в сообщении #859600 писал(а):
Я догадываюсь, что если $x=f(t)$ и $y=g(t)$, то можно сделать как-то вроде $t=b(x)$ и тогда $y=g(b(x))$, но как оттуда выковырять $t$ ?
Откуда? В последней формуле и не будет $t$.

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение08.05.2014, 13:28 
$y=y_2\left(\frac{x-x_0}{x_1-x_0}\right)^a, \, a\ge1 $. Не подойдет?

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение08.05.2014, 22:40 
destination_sirius в сообщении #859600 писал(а):
Но вот незадача: мне нужна функция $y(x)$
В какую сторону думать?

Ваши параметрические кривые --- конические сечения типа $$ Ax^2+2Bxy+Cy^2+2Dx+2Ey+F=0. \eqno(1)$$
Решая это уравнение как квадратное относительно $y$, Вы получите два варианта функции $y(x)$. Из них надо будет выбрать один, отвечающий Вашей конфигурации на рисунке. Как получить уравнение (1) для Вашего случая --- сейчас допишу.

-- 08 май 2014, 23:51:19 --

destination_sirius в сообщении #859600 писал(а):
Я догадываюсь, что если $x=f(t)$ и $y=g(t)$, ...

Приведите левые части уравнений $x-f(t)=0$ и $y-g(t)=0$ к общему знаменателю (оставьте только числители). Полученную систему из двух уравнений рассмотрите как линейную относительно $t$ и $t^2$. Так её и решите, и получите $t=L_1(x,y)$ и $t^2=L_2(x,y)$. Приравняв $(t)^2=t^2$ т.е. $L_1^2(x,y)=L_2(x,y)$, получите уравнение (1). На этом высокая математика заканчивается. Смотрим школьный учебник по квадратным уравнениям, решаем, выбираем нужный корень из $y_{1,2}(x)=\dfrac{-b\,{\color{magenta}\pm}\,\sqrt{\ldots}}{2?a}$ (пардон, формулу в деталях не помню), и всё.

-- 08 май 2014, 23:58:06 --

(Оффтоп)

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

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение10.05.2014, 16:24 
Спасибо за ответы, буду пробовать.

VPro в сообщении #860549 писал(а):
$y=y_2\left(\frac{x-x_0}{x_1-x_0}\right)^a, \, a\ge1 $. Не подойдет?
Выглядит просто, но из похожих кривулек будет состоять форма волны цифрового сигнала с переменной частотой. Форма кривой тоже будет меняться. Тысячи раз в секунду возведение в большую дробную степень может быть слишком ресурсоёмким. Надо пробовать, спасибо за формулу, может быть, прокатит.

Алексей К., спасибо за доходчивое объяснение.
Алексей К. в сообщении #860695 писал(а):

(Оффтоп)

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

(Оффтоп)

Стопудово, я много чего не умею и не знаю и придумал себе ерунду )) Спасибо, что теперь знаю чуть больше. Осталось прекратить ерунду придумывать )) Цель в принципе и состоит в моделировании подобных кривулек. Из двух похожих кривых и их зеркальных отображений относительно оси X будет состоять форма волны сигнала. Требуется чтобы форма волны регулировалась с помощью одного параметра, таким образом, как я описал. Этот сигнал нужен сам по себе, для проектирования электронного музыкального инструмента. Я упростил задачу, чтобы не засорять эфир.

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение10.05.2014, 16:37 
destination_sirius в сообщении #861385 писал(а):
Тысячи раз в секунду возведение в большую дробную степень может быть слишком ресурсоёмким.
Ога, а таблицы и интерполяцию никто не изобретал?

-- Сб май 10, 2014 19:38:14 --

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

 
 
 
 По мотивам обмена оффтопиками.
Сообщение10.05.2014, 20:08 
Зачем Вам $y(x)$? Почему $x(t),\, y(t), t=0,.1,.2,...,.9,1.0$ не катит для моделирования сигнала?

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение10.05.2014, 21:41 
Шаг 0.1 слишком грубый для этой задачи. Сигнал цифровой, с большой частотой дискретизации. От начала до конца кривой по оси X может быть до 2400 отсчётов. То есть значения X мне уже даны, по ним нужно найти значения Y

Так так... в любом случае можно подумать в этом направлении...
Сигнал цифровой. Есть частота дискретизации. ось $x$ на рисунке - ось времени. То есть шаг $\delta$ по оси $x$ известен.

Я вижу это только так:

Начальная позиция: $t=0$, $x=x_0$

Теперь нужно найти такое значение $t$, чтобы оно удовлетворяло значению $x$ на следующем шаге $x+\delta$:
$x+\delta=f(t)$

У меня получатся два корня: $t_1$ и $t_2$. Нужно один из них подставить в $y=g(t)$. Пока не пытался решить уравнение, но надеюсь один из корней будет всегда отрицательным, иначе непонятно, какой из них брать.

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение10.05.2014, 22:22 
destination_sirius в сообщении #861464 писал(а):
У меня получатся два корня: $t_1$ и $t_2$.

Полагаю, только один из них имеет право быть в интервале (0;1), и этого теста достаточно для дискриминации корней. В рамках
#ifdef DEBUG
...
#endif

можно записать, что если таковое случилось, то или где-то ошибка в программе, или мир перевернулся (зависимо от стиля программирования).
Также не забывайте, что $\delta\,[=\Delta x]=\Delta t\cdot\left.\frac{dx}{dt}\right|_{t=t_i}$. Типа точно не знаю, но при таком мелком делении отрезка может и сгодится.

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение10.05.2014, 22:39 

(Оффтоп)

Как-то читал некоего Володина про ЭМИ, книжка еще докомпьютерной эры, так он там вроде писал, что ухо не различает фаз спектральных составляющих сигнала, а только их амплитудные соотношения, поэтому совершенно разные картинки сигналов во временнОй области (на экране осциллографа) звучат абсолютно идентично, а незаметные глазу различия могут выражаться в радикальном изменении тембра. А сейчас, в наш век, когда вычислительные мощности бороздят космические просторы, можно применить регистровый синтез (чтобы оправдать термин "синтезатор"), чем пытаться рисовать Безьём форму сигнала во временнОй области с непредсказуемым результатом.
UPD ссылка на книжку Володина (читается сразу, без скачивания), прочитать лучше всю (пропуская конкретные схемы отдельных узлов)

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение11.05.2014, 21:28 
_Ivana в сообщении #861484 писал(а):

(Оффтоп)

Как-то читал некоего Володина про ЭМИ, книжка еще докомпьютерной эры, так он там вроде писал, что ухо не различает фаз спектральных составляющих сигнала, а только их амплитудные соотношения, поэтому совершенно разные картинки сигналов во временнОй области (на экране осциллографа) звучат абсолютно идентично, а незаметные глазу различия могут выражаться в радикальном изменении тембра. А сейчас, в наш век, когда вычислительные мощности бороздят космические просторы, можно применить регистровый синтез (чтобы оправдать термин "синтезатор"), чем пытаться рисовать Безьём форму сигнала во временнОй области с непредсказуемым результатом.
UPD ссылка на книжку Володина (читается сразу, без скачивания), прочитать лучше всю (пропуская конкретные схемы отдельных узлов)

(Оффтоп)

Спасибо, интересно почитать. Вот краткий обзор всего что сегодня распространено на этом поприще: http://rutracker.org/forum/viewtopic.php?t=3643455 1998 год, правда, но немногое прибавилось

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение11.05.2014, 21:32 
Надеюсь, то, что я всюду писал про $y(x)$, а Вы, оказывается, спрашивали про $x(y)$, проблемы не составляет. :?

 
 
 
 Re: Кривая Безье как функция x(y), без параметра t
Сообщение11.05.2014, 21:48 
Я ошибся, нужна y(x), нельзя было изменить название темы. Проблемы не составляет, составляет наоборот много радости ) теперь буду выбирать наименее ресурсоёмкий вариант

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


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