| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > динамическое рисование эллипса |
| Автор: evgovs1991 9.10.2014, 23:15 | ||||
| Не получается рисовать динамически эллипс...ка исправить? UGrEdit.h
UGrEdit.cpp
http://pikucha.ru/idCLW |
| Автор: xvr 10.10.2014, 09:18 |
| Прежде чем рисовать новый эллипс вы долны стереть старый. Это можно сделать либо сохранением BitMap перед рисованием и восстановлением перед каждым новым рисованием эллипса, либо 2х кратным рисованием эллипса в режиме XOR (что бы 2е рисование того же самого эллипса его удаляло) |
| Автор: evgovs1991 10.10.2014, 11:19 | ||||
решил проблему с рисованием эллипса динамически....но мне нужно рисовать неограниченное количество эллипсов как в paint
Добавлено через 2 минуты и 8 секунд
а как хранить временное изображение эллипса и где лучше? Добавлено через 13 минут и 30 секунд Вот что получается когда много эллипсов http://www.radikal.ru |
| Автор: xvr 10.10.2014, 12:16 |
Лучше не хранить - будут большие тормоза А для того, что бы элипсы были не такие рваные, можно в процессе рисования использовать pmNotXor, а когда рисование закончилось (пользователь отпустил кнопку мыши) стирать элипс (тем же pmNotXor), а потом рисовать конечную версию обычным pmCopy (или как он там называется) |
| Автор: evgovs1991 10.10.2014, 13:19 | ||
Это помогло но мне надо рисовать не один эллипс а много...как отпускаю кнопку мыши то рисуется эллипс..но если рисую заново то старый стирается вот поэтому и спрашиваю как хранить а потом вставлять изображение |
| Автор: xvr 10.10.2014, 15:18 |
Это почему? Он должен остаться на канве Image3, и с момента отпускания клавиши мыши он станет фоновым рисунком, поверх которого вы будете рисовать новые элипсы. Проверьте обработчики. У вас первое Xor рисование должно быть в обработчике MouseDown, 2 штуки в MouseMove и заключительные Xor и Сopy в MouseUp |
| Автор: evgovs1991 10.10.2014, 15:56 |
| всё исправил теперь работает |