![]() |
|
|
![]()
|
|
| Angel_CJ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Собственно сабж
Необходимо соединить 2 точки на плоскости плавными линиями, нарисовав на концах стрелки. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
отлично. берем первую точку. берем вторую точку. имея две точки, проводим через них дугу определенного радиуса(радиус не менее расстояния между точками; для одного значения радиуса есть только две возможности провести окружность через две точик); рисуем на концах стрелки(каждая стрелка - два треугольника, симметричные относительно "оси" стрелки). все.
Добавлено через 15 секунд может, подробности выдашь какие-о? |
|||
|
||||
| Angel_CJ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Нужно, что бы было примерно, как на картинке. Т.е. дуга не подходит. Пробовал кубические сплайны - тоже фигня получается :( Я хотел еще опорную точку использовать одну. Т.е. чтобы получилась плавная кривая (но не дуга) через 3 точки.
Присоединённый файл ( Кол-во скачиваний: 28 )
01.GIF 3,02 Kb |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
похоже, это кривая Безье. Вот ещё сходу описания алгоритмов построения:
на alglib.sources.ru на algolist.manual.ru |
|||
|
||||
| Angel_CJ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Да нет :( Кривая Безье не подходит. Можно использовать лишь 3 точки: начальную, конечную и опорную. Можно без опорной.
Но, если с опорной, то кривая должна через нее проходить Это сообщение отредактировал(а) Angel_CJ - 11.11.2007, 19:52 |
|||
|
||||
| Angel_CJ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Неужели никто не знает, как это сделать? :(
|
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: нет Всего: 39 |
Angel_CJ, а может использовать четыре точки? = Две начальные и две, характеризующие "выгибы" кривой при приближении к начальным. Если выгибы симметричны, то, считай, одна опорная точка... Какой-нибудь полином Лагранжа по ним построить? Или снова не то?
... И вообще, я не понял, чем неугодила кривая Безье : ![]() Лично я вижу сходство с твоим рисунком. Опорных точек на одну больше, вся проблема - научиться их выбирать. По поводу желания ограничиться одной опорной точкой замечу, что тебе нужен полином, как минимум третей степени. Через две точки таких полиномов можно построить бесконечно много. Имея три точки на одной прямой, ты получишь прямую линию, не на одной прямой - несимметричную кривую. Это сообщение отредактировал(а) marcusmae - 13.11.2007, 23:14 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
а я не вижу
вот-вот. причем с таким подходом можно даже по двум опорным точкам строить... |
||||
|
|||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
Всё-таки это кривая Безье. Ты просто не учитываешь, что опорные точки можно НЕ РИСОВАТЬ, а просто держать "в уме". Кривая Безье не проходит по своим опорным точкам. Вот, смотри, я нарисовал в CorelDraw кривую Безье. Синими наконечниками стрелок обозначены две опорные точки. Они нужны только для расчёта, ты их не рисуй и всё. Присоединённый файл ( Кол-во скачиваний: 22 )
besier_sample.jpg 19,81 Kb |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |