Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вектора

2.5K
09 ноября 2002 года
zirkel
1 / / 09.11.2002
Хочу научится работать с векторами как то:
на канве или другой какой плоскости поставить точку или линию, при наведении на нее мышкой получать сообщение что это объект_n, и в том же духе...
831
10 ноября 2002 года
S_T
117 / / 23.10.2002
Цитата:
Originally posted by zirkel
Хочу научится работать с векторами как то:
на канве или другой какой плоскости поставить точку или линию, при наведении на нее мышкой получать сообщение что это объект_n, и в том же духе...



Рассмотрим для линии. Пусть ее концы заданы точками A(xa,ya) и B(xb,yb). Тогда уравнение этого отрезка будет:

t=(x-xb)/(xa-xb)=(y-yb)/(ya-yb).

Теперь, отлавливая OnMouseMove, и получая координаты мыши X, Y, подставим их в это уравнение, и если выполняется условие:
t=(X-xb)/(xa-xb)=(Y-yb)/(ya-yb).
и условие, 0<=t<=1, то мышь попала на отрезок.
Для точки, я думаю, все понятно. Там просто надо сравнить координаты указателя мыши с координатами точки.
В случае, если xa=xb или ya=yb (вертикальный или горизонтальный отрезки), нужно
1. При xa=xb. Если X=xa, и 0<=t=(Y-yb)/(ya-yb)<=1 то мышь попала на отрезок.
2. При ya=yb. Если Y-ya и 0<=t=(X-xb)/(xa-xb)<=1 то мышь попала на отрезок.

Тогда переберая все отрезки (точки), и сравнивая координаты мыши с отрезками (точками), находим тот, на который попала мышь

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог