![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
всем доброго времени суток.......опишу суть задания: двигаем мышкой по форме, если нажали Шифт то запоминается текущая позиция курсора, это будет координаты точки(вектора) 1, двигаем мышь дальше, отпустили Шифт, запомнили текущие координаты курсора, они будут являться координатами точки 2. Необходимо вычислить угол между этими двумя векторами и что бы мышка после этого могла ходить только под вычисленным углом.
Фиксацию координат и вычисление угла описал.....теперь не знаю как сделать что бы эта самая мышь двигалась только под определенным углом.....знаю что необходимо использовать SetCursorPos.....только вот не знаю как описать параметры внутри этой функции так что бы мышь двигались под углом ??? Это сообщение отредактировал(а) Clasteruga - 20.7.2011, 09:15 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Т.е. понимать нужно так, что после отпускания Шифт и вычисления угла мышь вообще никогда нельзя было бы передвинуть не "под этим углом"? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
за исключением если пользователь укажет новые точки
|
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Я это спросил к тому, что так как описан алгоритм в топике, то мышь после отпускания Шифт должна будет ходить не столько "под определенным углом", сколько "только по той прямой", которой принадлежат те две точки.
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
ну в принципе да, только она может не только по одной линии а как показано на рисунке 2, там угол 45*, и мышь может ходить получается в левый верхний угол, в правый верхний угол, в нижний и т.д
|
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Ну в принципе понял. Понял что сама задача мне абсолютно не понятна. Ну да. Угол вычИслили. А дальше то что? 1. Нужно отслеживать перемещение мыши пользователем? И помещать курсор в каждый момент перемещения в ту точку, которая наиболее близка к одному из четырёх отрезков исходящих из точки 2? И при новом нажатии на Шифт задавать новый угол возможного перемещения? 2. Автоматически перемещать курсор по одному из этих четырех отрезков? P.S. Если это "задание", то лучше не "описывать суть" задания, а приводить задание именно в том виде, в котором оно было задано. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
1. Да
2. Пользователь сам двигает мышью, но она может перемещаться только по этим отрезкам, на любое расстояние Это сообщение отредактировал(а) Clasteruga - 13.7.2011, 09:51 |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
вот есть кое какие наработки только после того как поставил 2 точку и начинаю двигать мышью она начинает мерцать сильно и судня по все получать сразу 2 координаты
|
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Так тебе ещё и рисовать нужно?!
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Кстати. Никаких "Шифтов" в представленном коде не нашел. :(
Откуда нарыл? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
Не рисовать не надо это я так сделал что бы было видно как движется мышь .....Немного помогли.......с шифтом я разберусь......он есть но я его не вставлял решил пока с мышкой сделать....можете подсказать в чем проблемка????? почему курсор мерцает и двигается сразу в 2-х направлениях? Это сообщение отредактировал(а) Clasteruga - 19.7.2011, 13:40 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Задачу озвучь. И плюнь на "некоторые наработки". -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
необходимы рассчитать угол между 2-мя векторами и после этого когда пользователь двигает мышкой она должна двигаться только под этим углом в 4-х направлениях смотри рисунок ниже................
Это сообщение отредактировал(а) Clasteruga - 20.7.2011, 09:15 Присоединённый файл ( Кол-во скачиваний: 13 ) ![]() |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Я же просил описать задачу! Реальную задачу, а не теоретический вопрос! P.S. Рисунок ниже мало помогает понять суть задачи. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Clasteruga |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 24.9.2008 Репутация: нет Всего: 1 |
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |