| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Как соединить 2 точки |
| Автор: Angel_CJ 10.11.2007, 00:49 |
| Собственно сабж Необходимо соединить 2 точки на плоскости плавными линиями, нарисовав на концах стрелки. |
| Автор: skyboy 10.11.2007, 00:57 |
| отлично. берем первую точку. берем вторую точку. имея две точки, проводим через них дугу определенного радиуса(радиус не менее расстояния между точками; для одного значения радиуса есть только две возможности провести окружность через две точик); рисуем на концах стрелки(каждая стрелка - два треугольника, симметричные относительно "оси" стрелки). все. Добавлено через 15 секунд может, подробности выдашь какие-о? |
| Автор: Angel_CJ 10.11.2007, 20:36 |
| Нужно, что бы было примерно, как на картинке. Т.е. дуга не подходит. Пробовал кубические сплайны - тоже фигня получается :( Я хотел еще опорную точку использовать одну. Т.е. чтобы получилась плавная кривая (но не дуга) через 3 точки. |
| Автор: skyboy 10.11.2007, 20:48 |
| похоже, это 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. Вот ещё сходу описания алгоритмов построения: http://alglib.sources.ru/interpolation/beziercurve.php http://algolist.manual.ru/graphics/painting/besier.php |
| Автор: Angel_CJ 11.11.2007, 19:27 |
| Да нет :( Кривая Безье не подходит. Можно использовать лишь 3 точки: начальную, конечную и опорную. Можно без опорной. Но, если с опорной, то кривая должна через нее проходить |
| Автор: Angel_CJ 13.11.2007, 22:21 |
| Неужели никто не знает, как это сделать? :( |
| Автор: marcusmae 13.11.2007, 22:44 |
| Angel_CJ, а может использовать четыре точки? = Две начальные и две, характеризующие "выгибы" кривой при приближении к начальным. Если выгибы симметричны, то, считай, одна опорная точка... Какой-нибудь полином Лагранжа по ним построить? Или снова не то? ... И вообще, я не понял, чем неугодила кривая Безье : ![]() Лично я вижу сходство с твоим рисунком. Опорных точек на одну больше, вся проблема - научиться их выбирать. По поводу желания ограничиться одной опорной точкой замечу, что тебе нужен полином, как минимум третей степени. Через две точки таких полиномов можно построить бесконечно много. Имея три точки на одной прямой, ты получишь прямую линию, не на одной прямой - несимметричную кривую. |
| Автор: Dims 13.11.2007, 23:34 | ||
Всё-таки это кривая Безье. Ты просто не учитываешь, что опорные точки можно НЕ РИСОВАТЬ, а просто держать "в уме". Кривая Безье не проходит по своим опорным точкам. Вот, смотри, я нарисовал в CorelDraw кривую Безье. Синими наконечниками стрелок обозначены две опорные точки. Они нужны только для расчёта, ты их не рисуй и всё. |