![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.06.2011
Сообщений: 3
|
![]()
Добрый день!
Нарисовал элипс Код:
Благодарю! Работаю в Visual Basic .NET |
![]() |
![]() |
![]() |
#2 | ||
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]() Цитата:
Событие MouseMove => если в состоянии перемещения, то определить на сколько пикселей переместился курсор мыши (координаты мы же запомнили, да?) и изменить координаты эллипса на такую же величину. Запомнить новые координаты курсора (заменить ими старые) Событие MouseLeftButtonUp => покинуть состояние перемещения Цитата:
Идея понятна?
Благодарить в репутацию. Проклинать — туда же
![]() |
||
![]() |
![]() |
![]() |
#3 |
Регистрация: 12.06.2011
Сообщений: 3
|
![]()
А как можно запретить рисовать, если мышь направлена на ту фигуру, которая уже нарисовано.
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
1. Координаты отрисованной фигуру, нужно хранить в специальном списке структур. 2. На канве, определяются координаты курсора и сравниваются с координатами в этом массиве. 3. Пре перемещении структуры, часть канвы будет затёрта, значит структура фигуры, должна содержать участок перекрываемой канвы и восстанавливать тот участок, который открывается при её перемещении. Заслоняемую часть, она должна перезаписывать в эту структуру. Можно пойти и другим путём. Создать три буфера отображения. Один, будет содержать изначальную канву, два других, для перерисовки изображений и переключения буферов. Такие режимы обеспечивает 2D графика в DirectX или в OpenGL.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Аналогично: сравнить координаты будущей фигуры (той, которую мы собираемся нарисовать) с координатами всех ранее нарисованных фигур. Если есть пересечения - запрещать рисование
Smitt&Wesson: согласен, я описывал только принцип ![]()
Благодарить в репутацию. Проклинать — туда же
![]() Последний раз редактировалось Luuzuk; 20.03.2013 в 11:25. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 12.06.2011
Сообщений: 3
|
![]()
Знаете хорошую литературу о WPF?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
![]()
Если бы работал исключительно с Windows, то сказал бы также. Примерно год работал только с WPF, всем его рекомендовал, познал много ее вкусностей, но когда встала задача разработки под другие системы пришлось вновь вспоминать WindowsForm!
Под Linux/GNOME есть очень хорошая, opensource-библиотека, аналог .NET Framework - Gtk#, в которой нет реализации WPF, т.к. WPF - это Windows Presentation Foundation, где Windows не переводится как "Окно", а представляет ОС Windows. Вообще, использование элементов управления, заточеных под конкретную ОС - это очень плохо для C#, который разрабатывался как кроссплатформенный! По указаным причинам, советую ни начинать изучать WPF, а посмотреть в сторону готовых примеров, например Chess Program in C# или воспользоваться поиском по ключу Moving на том же самом CodeProject.
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 08.04.2013
Сообщений: 9
|
![]()
Благодарю вас, нашел очень хорошую библиотеку.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перемещение фигур | ILanor | Помощь студентам | 2 | 02.05.2012 12:25 |
Движение фигур | N.i.k.o.l.a.y. | Общие вопросы Delphi | 1 | 13.03.2012 09:12 |
Растягивание фигур. | KOPC1886 | C# (си шарп) | 4 | 03.05.2011 13:04 |
Площадь фигур | Вор | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 18.05.2009 22:44 |