2014 dxdy logo

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

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




На страницу 1, 2, 3, 4  След.
 
 Аппроксимация окружности кубической кривой Безье
Сообщение09.09.2013, 17:04 
Здравствуйте! Помогите пожалуйста найти координаты опорных точек кривой Бизье третьего порядка.
Для полного понимания того, какими значениями я располагаю и для более подробного обьяснения мне на примере моих значений, я нарисовал картинку. Всё что на ней есть мне известно. Получается, что начало кривой $E_2$, точка $D$ это $t(0.5)$ и точка $E_2$, это конец кривой. Так же по условию известно, что контрольные точки должны находиться на векторах\отрезках $ca,cb$. Самостоятельно я не как не могу разобраться, по этому очень рассчитываю и надеюсь на Вашу помощь.
Изображение
 i  Deggial: Формулы и термы оформляйте $\TeX$ом. Инструкции по оформлению формул здесь или здесь (или в этом видеоролике).
Пока формулы оформил сам.

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 19:31 
Так кривая - дуга окружности? А вы уверены, что она вообще подпадает под возможность задания? (Просто в Wiki написано, что окружность не может быть описана параметрическим уравнением кривой Безье.)

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 19:54 
То есть Вы хотите сказать, что имя точку начала, точку конца, точку t(0.5)...даже возможно и t(1\3),t(2/3) ( хотя вот эти дополнительные точки не особо желательно ) нельзя найти опорные точки? Или из безье третьего уровня нельзя дугу сделать?

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 20:02 
Dyx в сообщении #762028 писал(а):
Или из безье третьего уровня нельзя дугу сделать?

Угу. И вообще, как мне кажется, нельзя, вне зависимости от уровня (дуга в параметрическом виде задается через тригонометрические функции, а кривые Безье только через полиномы).

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 20:18 
Вот, взгляните http://vuzit.com/view/?oid=1&storefiles ... kus354.pdf
страница 373, разве это не безье на окружности? Вот скрин:
Изображение

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 20:21 
Из обычной кубической кривой Безье сделать кусок окружности, естественно, невозможно. Но приближения очень хорошие. Так рисуютя окружности, напрмер, в реализаиях языка PostScript. При этом полная окружность разбивается на 4 части, и этого достаточно для отличной интерполяции.

Вероятно, задача изначально и состояла в поиске кривой Безье, ближайшей (в каком-то определённом смысле) к дуге окружности.

А уж картинка в стартовом сообщении с кучей диких идентификаторов и прочих излишеств для такой простой задачки, конечно, ужасна.

-- 09 сен 2013, 21:24:38 --

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

-- 09 сен 2013, 21:29:32 --

Алексей К. в сообщении #222690 писал(а):
Я могу предложить неплохую, на мой взгляд, учебную задачу, тянущую на маленькое исследование.

"Иследовать аппроксимацию [дуги] окружности с помощью кубической кривой Безье".

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 20:29 
А уж картинка с кучей диких идентификаторов и прочих излишеств для такой простой задачки, конечно, ужасна.
Почему то у меня не работают теги... не смог даже как цитату выделить..
Картинку эту я не просто так нарисовал, а для того, чтобы показать то, что у меня есть и на этом примере получить ответ, вместо уравнения, которых очень много в интернете, а мне до них ещё далеко.
Рисунок как нельзя лучше показывает то, что я делаю. Я имею угол в который вписываю окружность и исходя из этой окружности, мне нужно нарисовать кубическую Безье. По этому я и написал, что мне нужно, чтобы опорные точки лежали на сторонах этого угла.

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:09 
Dyx в сообщении #762053 писал(а):
получить ответ, вместо уравнения,

Я много раз решал эту задачку, но ответ не зафиксировал. Если хотите, давайте решим здесь, инициатива за Вами, подсказки за нами.
Берём кривую Безье, $$P_0=(-a,0),\quad P_1=(-a+p\cos\alpha,p\sin\alpha),\quad P_2=(a-p\cos\alpha,p\sin\alpha),\quad P_3=(a,0).$$ Единственная неизвестная --- длина плеча $p$. Записываем уравнение $y(t)$, требуем, чтобы верхушка кривой совпала с верхушкой дуги окружности: $$ y\left(\frac{1}{2}\right)=a\tg\frac{\alpha}2\;\left[=a\frac{\sin\alpha}{1+\cos\alpha}\right].$$ По хорошему, надо бы убедиться, что это случится именно при $t=\frac12$, ну да ладно...
Dyx в сообщении #762053 писал(а):
а мне до них [уравнений --- А.К.] ещё далеко.
Хороший повод приблизиться к ним, а то так и будет "далеко". А то многие, учась на программистов, плюют на математику ("зачем она, если я владею компьютером?"), а потом...

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:17 

(Оффтоп)

Алексей К. в сообщении #762073 писал(а):
требуем, чтобы верхушка кривой совпала с верхушкой дуги окружности:

это вообще-то не идеальный вариант, конечно; но как первое приближение -- допустим

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:20 
Dyx в сообщении #762053 писал(а):
Почему то у меня не работают теги...
Проверьте
Личный раздел --> Личные настройки --> Отправка сообщений --> BBCode всегда включён: Да!

-- 09 сен 2013, 22:23:04 --

ewert в сообщении #762081 писал(а):
это вообще-то не идеальный вариант, конечно; но как первое приближение -- допустим

Это простейший вариант, и выбран он с учётом того, как представился топикстартёр.

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:25 
У меня смутные подозрения, что по трем осесимметричным точкам можно нарисовать кривую Безье не третьего а второго порядка, причем найти опорную точку (одну единственную) можно тривиальным геометрическим построением (безо всяких уравнений, как и хотел ТС :-) )

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:30 
Точность больно худая. Окружность зело много на куски разбивать. Да и не все умеют строить кривые Безье втрого порядка, все умеют третьего (не будем о том, что третий как-то ко второму сводится, безусловно).

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:31 
Алексей К., а можно и мне как стороннему человеку вопросы (возможно, и у ТС они же возникнут):
- какую именно дугу аппроксимируете (какого радиуса и в пределах каких углов)?
- какой критерий аппроксимации?
-
Алексей К. в сообщении #762073 писал(а):
Единственная неизвестная --- длина плеча $p$.

а как же $\alpha$ и $a$?

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:33 
_Ivana в сообщении #762094 писал(а):
безо всяких уравнений, как и хотел ТС
ТС хотел хоть и без уравнений, но кубично всё же.

-- 09 сен 2013, 22:33:55 --

_hum_ в сообщении #762101 писал(а):
а как же $\alpha$ и $a$?
Это заданная конфигурация: хорда и опирающаяся на неё дуга окружности $r=\frac{a}{|\sin\alpha|}$ (а без модулей работает: $r=\frac{a}{\sin\alpha}$; наверное, это означает, что нельзя быть таким занудой, модули по пустякам ставить).

-- 09 сен 2013, 22:40:03 --

_hum_ в сообщении #762101 писал(а):
какой критерий аппроксимации?
Это входило бы в постановку задачи. Я выбрал простейший: совпадение касательных на концах (обязательно) и прохождение через верхушку дуги, что не есть оптимально (указано ewert'ом). Надо конечно и погрешность оценить, в виде максимального отклонения от окружности, и от этого допустимые альфы выбрать.

 
 
 
 Re: Нахождение опорных точек кривой Безье третьего порядка
Сообщение09.09.2013, 21:43 
Алексей К. в сообщении #762102 писал(а):
ТС хотел хоть и без уравнений, но кубично всё же.
Ага, причем кубично по трем точкам :-) Но ладно, пусть кубично, но раз ТС хотел без уравнений, то пусть и занимается геометрическими построениями, без единого гвоздя :-)

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


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