Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2011, 17:57   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Определение угла курсора образованным с Timage (delphi)

Добрый вечер форумчане. Возник такой "Ненужный" вопрос. Как определить угол, который образовывает курсор с определенной линией. Вершиной угла является TImage? Определенная линия всегда параллельна с боком и стороной формы. Я с таким еще не сталкивался, поэтому словами, возможно, объясняю неправильно, поэтому выкладываю скриншот. На нем Красным квадратом изображен TImage, Красный эллипс это курсор(так как мышь на скрин не попала). Голубая линия это линия, к которой ведется зеленый отрезок, составляют его мышь и вершина Timage. При всем этом положение Image не известно.
Подскажите, как это сделать, а именно - узнать угол. Если это возможно. Собственно, точно градус угла мне не нужен, по положению мыши предполагается вращение TImage.
Заранее преогромное спасибо.
Изображения
Тип файла: jpg Безымянный.jpg (29.7 Кб, 41 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.04.2011, 09:30   #2
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Может, есть какой-нибудь другой способ узнать положение курсора, относительно Timage? Нужно, чтобы при вращении мышки вокруг Timage, я знал примерно, какую картинку надо подставить в Picture.LoadFromFile(), чтобы она "смотрела" на указатель.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.04.2011, 09:41   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
При всем этом положение Image не известно.
Цитата:
по положению мыши предполагается вращение TImage.
сначала придется узнать какой Image нам нужен.
и видимо придется делать это по положению курсора.(или по траектории его изменения за последнее время).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.04.2011, 10:22   #4
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
сначала придется узнать какой Image нам нужен.
Как именно? Timage известен (я даже на скрине его в красный цвет обвел). Он будет менять свое положение.
Под
Цитата:
При всем этом положение Image не известно.
я имел в виду то, что объект не стоит на месте. Поэтому я думаю, что делать это по его траектории невозможно, хотя может, Вы знаете как?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.04.2011, 10:40   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
что объект не стоит на месте.
тем не менее в любой отдельно взятый момент времени его положение строго определено. координаты и углы рассчитываются НА ЗАДАННЫЙ(текущий) момент времени.
Цитата:
какую картинку надо подставить в Picture.LoadFromFile()
А зто зачем (зачем то и дело дергать картинку из файла) разве у нас там уже нет нужной картинки.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.04.2011, 10:44   #6
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
А зто зачем (зачем то и дело дергать картинку из файла) разве у нас там уже нет нужной картинки.
Я пока не занимался вращением Timage. Подумаю над этим
Цитата:
координаты и углы рассчитываются НА ЗАДАННЫЙ(текущий) момент времени.
Меня интересует каким образом? Есть какая-то формула или еще что-нибудь? Мне никак не приходят мысли как именно узнать этот угол.

P.S. Спасибо, что помогаете

__ Add

Эврика. Может сделать виртуальный квадрат центром которого является Timage? Сторона квадрата устанавливается так, что в данный момент мышка на ходится на ней. Если указатель показывает на угол квадрата - 45 градусов, если на сторону, то делим половину стороны на 45 и узнаем сколько этих частей. Получившееся число будет градусной мерой.
Как думаете не затормозит ли от этого приложение? Думаю делать в OnMouseOver.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 29.04.2011 в 10:56.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.04.2011, 10:57   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Есть какая-то формула или еще что-нибудь? Мне никак не приходят мысли как именно узнать этот угол.
Прямоугольный треугольник. (рис1)
линия курсор - Image это гипотенуза. координаты есть значит есть длина(теорема Пифагора. 7 или 8 класс)
голубая горизонталь это катет длина разность координат по оси X).
угол прилегающий к катету = ARCCOS( катет / гипотенуза )
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.04.2011, 11:00   #8
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
угол прилегающий к катету = ARCCOS( катет / гипотенуза )
Получается Таблицу Брадиса переписывать? Не всю конечно, а часть.
Цитата:
линия курсор - Image это гипотенуза. координаты есть значит есть длина
А если получится иррациональное?

Спасибо огромное.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 29.04.2011 в 11:07.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.04.2011, 11:14   #9
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

BC-гипотенуза
Угол A 90градусов.
далее квадрат(вторую степень) буду обозначать "(2)"
AB(2) + BC(2) = BC(2)
BC(2)= может равнятся иррациональному числу. Прийдется свою функцию писать.

Еще раз Спасибо

-add
все. решил воспользуюсь функцией hypot
Изображения
Тип файла: jpg Безымянный.jpg (19.5 Кб, 31 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 29.04.2011 в 11:45.
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свой курсор для всех элементов, и отображение курсора в TIMAGE phphel Мультимедиа в Delphi 46 26.07.2010 15:07
Определение иконки курсора DarkHacker Помощь студентам 1 19.03.2010 18:26
Определение местоположения курсора hackPNZ Microsoft Office Word 4 11.11.2009 14:02
TImage,стиль при наведении курсора DimOn4Ik Общие вопросы Delphi 3 29.10.2009 21:16
Определение координат курсора в Builder 6.0 С++ mopmuk Помощь студентам 2 09.06.2009 02:13