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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2008, 13:42   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как узнать находится ли точка в конкретной треугольной области?

Второй час вожусь и не могу добиться результата. Вопрос в следующем:
кликаем мышью по форме, получаем координаты. Как проверить, находится ли эта точка в определенной треугольной области? В случае с прямоугольником вопросов нет, а с треугольником трудности...
Dux вне форума Ответить с цитированием
Старый 07.12.2008, 14:05   #2
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Эм есть такая функция я не помню уже которая определяет расстояние от точка А до Б по любому с ней надо хитрить.
slips вне форума Ответить с цитированием
Старый 07.12.2008, 14:34   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
Эм есть такая функция я не помню уже которая определяет расстояние от точка А до Б по любому с ней надо хитрить.
какая именно? и что это даст?
Dux вне форума Ответить с цитированием
Старый 07.12.2008, 14:57   #4
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Вот пример который проверяет попадает ли точка в треугольник или нет
Вложения
Тип файла: zip Triangle1.zip (686 байт, 36 просмотров)
slips вне форума Ответить с цитированием
Старый 07.12.2008, 15:07   #5
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
Вот пример который проверяет попадает ли точка в треугольник или нет
Спасибо... но что-то не разобрался..
Dux вне форума Ответить с цитированием
Старый 07.12.2008, 17:29   #6
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Вопрос решен. Кому интересно, выложил здесь Point_in_Triangle.zip
Dux вне форума Ответить с цитированием
Старый 07.12.2008, 18:47   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,568
По умолчанию

Хорошо, что вопрос решён.
Если не ошибаюсь, то это делается так: считается площадь 3-х треугольников, вершинами которых являются вершины треугольника и точка. Если сумма их площадей равна площади исходного треугольника - щелчок внутри области. Единственное, надо учесть возможную погрешность вещественных операций.
Arigato на форуме Ответить с цитированием
Старый 07.12.2008, 19:21   #8
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Нет, не решён. Примерно выше красной черты пишет, что за пределм треугольника...


Вот для круга интересно...
Altera вне форума Ответить с цитированием
Старый 07.12.2008, 19:32   #9
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Проверил у себя с вашими координатами - все в порядке, правильно определяет. Я думаю причина в том, что у меня Vista и координаты формы left/top (от которых пляшет мышь) немного смещены, поэтому в XP возникает погрешность, однако это можно подкорректировать в этих строчках:

Код:
x0:=mousepos.x-form1.left-8; //запоминаем координату x на форме
y0:=mousepos.y-form1.top-29; //запоминаем координату y на форме

Последний раз редактировалось Dux; 07.12.2008 в 19:38.
Dux вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как просуммировать данные конкретной выборки ZLOdeev Microsoft Office Excel 6 20.10.2008 15:34
Как в TWebBrowser узнать адрес ссылки которая находится под курсором мышки SeRhy Общие вопросы Delphi 0 10.08.2008 10:11
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48
узнать IP компьютера, на котором находится серверная часть DartMrakkk Работа с сетью в Delphi 5 02.01.2008 16:55
Как узнать в Делфи координаты в котором находится курсор мыши? SVS Win Api 3 08.02.2007 13:34