![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
![]()
Второй час вожусь и не могу добиться результата. Вопрос в следующем:
кликаем мышью по форме, получаем координаты. Как проверить, находится ли эта точка в определенной треугольной области? В случае с прямоугольником вопросов нет, а с треугольником трудности... |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
Эм есть такая функция я не помню уже которая определяет расстояние от точка А до Б по любому с ней надо хитрить.
|
![]() |
![]() |
![]() |
#3 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
![]()
какая именно? и что это даст?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
Вот пример который проверяет попадает ли точка в треугольник или нет
|
![]() |
![]() |
![]() |
#5 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
![]()
Спасибо... но что-то не разобрался..
|
![]() |
![]() |
![]() |
#6 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
![]()
Вопрос решен. Кому интересно, выложил здесь Point_in_Triangle.zip
|
![]() |
![]() |
![]() |
#7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
Хорошо, что вопрос решён.
Если не ошибаюсь, то это делается так: считается площадь 3-х треугольников, вершинами которых являются вершины треугольника и точка. Если сумма их площадей равна площади исходного треугольника - щелчок внутри области. Единственное, надо учесть возможную погрешность вещественных операций. E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
![]()
Нет, не решён. Примерно выше красной черты пишет, что за пределм треугольника...
![]() Вот для круга интересно... |
![]() |
![]() |
![]() |
#9 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
![]()
Проверил у себя с вашими координатами - все в порядке, правильно определяет. Я думаю причина в том, что у меня Vista и координаты формы left/top (от которых пляшет мышь) немного смещены, поэтому в XP возникает погрешность, однако это можно подкорректировать в этих строчках:
Код:
Последний раз редактировалось Dux; 07.12.2008 в 19:38. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как просуммировать данные конкретной выборки | 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 |