|
Я Фоюмчанин ? дааааа)
|
||||||
Структура приложения "Спичечные головоломки"15.02.2015, 13:01. Показов 3762. Ответов 56
Метки нет (Все метки)
Всем доброго времени суток.
С самого начала: хочу реализовать приложение головоломку "спички". И так, что я пока сделал: Я могу ввести число строк и столбцов и нарисовать, а так же сразу создаю массив с точками пересечения прямых.
И тут вопрос как лучше рисовать спичку и как обрабатывать Drag And Drop? при рисовании на Canvos Плюс ко всему мне нужно обрабатывать положение спички, так, что бы она могла располагаться только от точки до точки: Как я думою: Мне нужно создать класс Квадрат и при подсчете точек создавать объекты этого класса и сохранять его координаты. т.е. наглядно будет так: Далее просто MouseMove будем бегать по всем квадратам и сравнивать координаты и положение мышки: Относительно всего поля найдем нужный квадрат, а относительно этого квадрата будем смотреть где в нем расположить спичку. Нужны комментарии, предложения, замечания и т.д. ...
0
|
||||||
| 15.02.2015, 13:01 | |
|
Ответы с готовыми решениями:
56
Структура приложения Структура приложения Структура Qt-приложения |
|
|
|
| 18.02.2015, 13:09 | |
|
0
|
|
|
|
|
| 18.02.2015, 13:53 | |
|
ivan.-94, лучше не заставлять юзеров проявлять чудеса микроконтроля мышкой. Сделай проще - тянешь спичку ведь не сферическую, а спозиционированную каким-то образом по отношению к сетке. Так и магнитить ее только в места, которым соответствует ее текущее положение в пространстве. А вращение спички производить заранее или в процессе перетаскивания(кликом ПКМ, например).
0
|
|
|
|
||||||
| 18.02.2015, 14:26 | ||||||
1
|
||||||
|
Я Фоюмчанин ? дааааа)
|
||
| 18.02.2015, 14:28 [ТС] | ||
|
Так как идея, что предложил Avazart либо мне не до конца понятна либо не подходит чуток. С вашей идеей я пока так взяв листочек и ручку набросал только: Легко заметить, что расстояние для стороны Left: Расстояние от точки (Left;y) до точки (x;y) = Right: Расстояние от точки (Right;y) до точки (x;y) = Top: Расстояние от точки (x;Top) до точки (x;y) = Top: Расстояние от точки (x;Bottom) до точки (x;y) = И остается вопрос по диагоналям... Там прямые заданны не уравнением, а двумя точками.
0
|
||
|
Я Фоюмчанин ? дааааа)
|
|||
| 18.02.2015, 14:32 [ТС] | |||
|
0
|
|||
|
|
|||
| 18.02.2015, 14:46 | |||
|
Не по теме:
Вычисление расстояния между точкой и прямой/лучом/отрезком Добавлено через 5 минут
0
|
|||
|
Я Фоюмчанин ? дааааа)
|
||||
| 18.02.2015, 14:49 [ТС] | ||||
|
Вы бы хотели что бы я записал так: А вам не кажется что это равносильно Добавлено через 1 минуту
0
|
||||
| 18.02.2015, 14:54 | |
|
0
|
|
|
|
||||||
| 18.02.2015, 15:04 | ||||||
|
ivan.-94 забудь ты про своё расстояние между двумя точками и меньше авазарта слушай.
Упростил код немного. Использовал следующие материалы: http://www.math.by/geometry/eqline.html и http://ru.onlinemschool.com/ma... y/p_line1/
1
|
||||||
|
Я Фоюмчанин ? дааааа)
|
|
| 18.02.2015, 18:38 [ТС] | |
|
kzru_hunter, Спасибо и отдельное спасибо за то, что предоставили материал
![]() Добавлено через 3 часа 19 минут У меня сейчас проблема в том, что при перемещении спички - процессор подскакивает 20%-50%
0
|
|
|
|
||
| 18.02.2015, 18:54 | ||
|
0
|
||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 19.02.2015, 08:22 | |
|
ivan.-94,
1) Включите двойную буферизацию формы. 2) Отрисовывайте все в битмап, а потом прорисовывайте его в имейдж.
0
|
|
|
Я Фоюмчанин ? дааааа)
|
|||||||||||||
| 19.02.2015, 15:13 [ТС] | |||||||||||||
|
у меня в функции дров для каждой спички выполняется
0
|
|||||||||||||
|
Я Фоюмчанин ? дааааа)
|
|
| 19.02.2015, 15:19 [ТС] | |
|
В общем у меня массив с 6 изображениями, я при прорисовке в зависимости от статуса спички(положения) задаю ей какое то изображение, отрисовываю и освобождаю объект, поэтому с памятью проблем нет - она не растет.
Но когда я беру спичку и начинаю двигать проц подлетает. Вот пока, что то упростил сократил, сделал меньше перерисовок - пошустрее, но мне не нравится..
0
|
|
|
|
|
| 19.02.2015, 15:36 | |
|
На кой тебе StretchDraw() ?
0
|
|
| 19.02.2015, 15:36 | |
|
Помогаю со студенческими работами здесь
40
Структура приложения Структура приложения Структура приложения Структура приложения ООП Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|