Здавствуйте,
Подскажите,пожалуйста, алгоритм построения Кривой Безье на Delphi ...
Сообщение отредактировано: Глюк -
Кривая Безье |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Кривая Безье |
Глюк |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Здавствуйте,
Подскажите,пожалуйста, алгоритм построения Кривой Безье на Delphi ... Сообщение отредактировано: Глюк - |
volvo |
Сообщение
#2
|
Гость |
Алгоритм? Рекурсивное деление пополам ... Если ты имеешь в виду метод построения, то существует функция PolyBezier, которая по заданным точкам строит эту самую кривую Безье.
Сообщение отредактировано: volvo - |
Глюк |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Алгоритм? Рекурсивное деление пополам ... Если ты имеешь в виду метод построения, то существует функция PolyBezier, которая по заданным точкам строит эту самую кривую Безье. А как это.Просто впервые с таким сталкиваюсь...не понимаю,если честно Мне надо шоб точки задавались с помощью мыши (щелчком на области отображения). Сообщение отредактировано: Глюк - |
volvo |
Сообщение
#4
|
Гость |
Смотри... На форму брось TImage и TButton, в классе формы опиши:
type и добавь 2 обработчика: procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;Теперь щелкни в 4-х местах на Image, этим ты задашь 4 точки. Только внимательно: 2 из них (первая и последняя) - задают начало/конец кривой Безье, а еще 2 - задают ее форму... После того, как 4 точки отмечены - жми кнопку... Вот тебе и кривая... |
Глюк |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Спасиб,но...Я сделал так,но у меня на TImage точки не ставятся,а в итоге и не рисуется кривая?
unit Unit1; Что я не правильно сделал? |
volvo |
Сообщение
#6
|
Гость |
Ты вручную прописывал Image1MouseDown? Так нельзя... убери это и в Object Inspector-е 2 раза щелкни на OnMouseDown для TImage - тогда Дельфи будет знать, что такой обработчик сушествует... Сейчас Дельфи просто не знает о нем, потому как то, что прописано в Private и Public - это твое добавление, а не добавление компилятора...
Попробуй изменить, если не получится - присоединю небольшой работающий проект... |
Глюк |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Спасибо большое.Теперь рисует
Я хотел узнать:а можно сделать так,чтобы задавалось более 4 точек? |
volvo |
Сообщение
#8
|
Гость |
Задавать ты можешь хоть 50, только вот использовать PolyBezier будет только 4 ... Если надо больше - придется отрисовывать вручную...
Сообщение отредактировано: volvo - |
Глюк |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Значит все надо начинать сначала...
Подскажите,пожалуйста,а как можно будет это сделать? |
volvo |
Сообщение
#10
|
Гость |
Почитай вот это (теория про кривые Безье): http://ru.wikipedia.org/wiki/%D0%9A%D1%80%...%B7%D1%8C%D0%B5
А на Арбузе есть неплохая реализация на Паскале: http://forum.arbuz.uz/index.php?showtopic=...indpost&p=13139 |
Глюк |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Ок.Спасибо.
Прога практически готова,тока надо немного подкорректировать...кое-че не то у меня...Ну,думаю,справлюсь |
Глюк |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Снова я за помощью.Я сделал программку,рисует правильно.Но только почему-то у меня координаты точек смещаются.Что нужно сделать,чтоб рисовалось там,где я кликаю мышкой?
Сообщение отредактировано: Глюк - |
volvo |
Сообщение
#13
|
Гость |
Ты считаешь, что глобальные координаты курсора мыши и оконные координаты, в которых должна появиться точка - это одно и то же, а на самом деле это далеко не так... Я не просто так в четвертом посте сделал обработку события OnMouseDown... Смотри:
var и переносишь обработку нажатия из OnClick в OnMouseDown: procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; |
Глюк |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: 0 |
Спасибо!Я про это и не подумал...
|
Текстовая версия | 11.01.2025 16:33 |