![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
Здравствуйте! Хочется сразу перейти к делу, допустим, что есть окно в котором нужно нарисовать мишень, мишень состоит из десяти полей. Далее предлагается с помощью стандартной панели выбора цвета выбрать цвет для определённого поля мишени, как это реализовывать не уточняется, и так как нет никаких конкретных инструкций я решил сделать так. Создать 10-ть регионов, по клику по одному из них должна вызваться диалоговая панель выбора цвета, и после выбора цвета, это поле должно окраситься в этот цвет. Но как отловить клик мыши так, что бы точно знать в каком поле был клик... Попытка облегчить задачу с помощью создания эллиптических регионов не увенчалась успехом т.к. нет однозначного ответа в каким именно регионе была нажата кнопка мышки. Думаю делать так: зная радиус и координаты(клик мыши) можно попробовать через т. Пифагора aqrt(x*x + y*y) <= r*r, но тоже ничего путёвого не получается, пока что, не получается. Соответственно в этом и заключается вопрос, как сделать отлов кликов мыши так, чтобы точно знать, в каком поле мишени ты кликнул.
Мишень создаю так: Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
А что не получается с формулой дистанции (радиуса)
aim_minor_radius <= sqrt(pow(mouse_x - aim_center_x, 2) + pow(mouse_y - aim_center_y, 2)) < aim_major_radius Можно обойтись и без sqrt aim_minor_radius * aim_minor_radius <= pow(mouse_x - aim_center_x, 2) + pow(mouse_y - aim_center_y, 2) < aim_major_radius * aim_minor_radius Последний раз редактировалось macomics; 17.03.2023 в 22:40. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
В случае с целыми числами два умножение и целочисленных сравнения занимает в разы меньше, чем вещественная операция вычисления квадратного корня и две операции сравнения вещественных чисел.
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() Цитата:
![]() А по стилистике того решения, которое я пытаюсь реализовать, правильное ли оно или лучше делать как-то иначе. Я понимаю, что вкусы у всех разные, но всё же... |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
И в ДОПОЛНЕНИЕ к теме т.к. задание тоже, то спрошу здесь, Если мишень нужно нарисовать на временном окне, которой находится на диалоговой панели, я думаю, что прорисовка мишени и изменение цвета полей мишени нужно производить в функции окна, которое встроено в диалоговую панель, не в функции же диалоговой панели, но возникла какая-то ошибка, поуа что решить её не могу. Вот часть кода:
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
//Здесь я хочу рисовать мишень, по клику мыши выбрать цвет из стандартной диалоговой панели выбора цвета и раскрасить поле мишени по которому я кликнул в этот цвет.
Код:
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C++] Работа с мышью | koshkarjov | Помощь студентам | 0 | 14.10.2010 22:36 |
Работа с мышью | Amery | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 28.05.2008 21:19 |
Win Api, работа с мышью | Petrr | Win Api | 2 | 26.04.2008 19:58 |