Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > построение дуги(хорды)


Автор: gorillka 19.1.2011, 14:25
мне известны координаты двух точек (х1,у1) (х2,у2) надо между ними провести дугу(хорду). срочно надо если кто знает напишите некогда литературу просто читать. радиус дуги не принципиален, главное чтоб была дуга. заранее спасибо

Добавлено через 1 минуту и 56 секунд
а забыл написать мне нужна именно функция y(x)

Автор: gorillka 19.1.2011, 14:58
ну что не ужели не кого нет кто шарит в математике

Автор: KaraKum 19.1.2011, 15:15
http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%B2%D0%B0%D1%8F_%D0%91%D0%B5%D0%B7%D1%8C%D0%B5 в приложенных файлах.

Автор: gorillka 19.1.2011, 15:27
не совсем то то мне нужно но все равно большое спасибо за интересный материал smile первый раз о таких кривых услышал.

Автор: Skevalt 19.1.2011, 15:41
Имея точки (x1, y1) и (x2, y2), задаем некоторый коэффициент k, который определяет отношение радиуса окружности и половину расстояния между данными точками. Для примера k = 2. Остальное в приложенном http://dl.dropbox.com/u/15949156/archs.rarMathcad (и html вариант) 

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

А вот http://rsdn.ru/forum/alg/1853304.flat.aspx пишут, что это будет аппроксимация кривой большего порядка, а не точное решение

Автор: gorillka 19.1.2011, 15:51
а вот блин через 1 час 11 минут программа должна быть готова, а тут без этой кривой еще много всего делать. короче обойдусь без кривой. потом как время будет так разберусь с ними. больше спасибо за участие

Автор: Skevalt 19.1.2011, 16:34
Возьмите координаты центра окружности как середину отрезка, соединяющего известные точки. Половина длины этого отрезка равна радиусу окружности. Будет полуокружность, опирающаяся диаметром на известные точки.
середина x0 = (x1 + x2)/2 y0 = (y1 + y2)/2, радиус R = 0.5*sqrt((x1 - x2)^2 + (y1 - y2)^2)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)