|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2008, 13:42 | #1 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
Как узнать находится ли точка в конкретной треугольной области?
Второй час вожусь и не могу добиться результата. Вопрос в следующем:
кликаем мышью по форме, получаем координаты. Как проверить, находится ли эта точка в определенной треугольной области? В случае с прямоугольником вопросов нет, а с треугольником трудности... |
07.12.2008, 14:05 | #2 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
Эм есть такая функция я не помню уже которая определяет расстояние от точка А до Б по любому с ней надо хитрить.
|
07.12.2008, 14:34 | #3 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
какая именно? и что это даст?
|
07.12.2008, 14:57 | #4 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
Вот пример который проверяет попадает ли точка в треугольник или нет
|
07.12.2008, 15:07 | #5 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
Спасибо... но что-то не разобрался..
|
07.12.2008, 17:29 | #6 |
Delphi Master
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 803
|
Вопрос решен. Кому интересно, выложил здесь Point_in_Triangle.zip
|
07.12.2008, 18:47 | #7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,568
|
Хорошо, что вопрос решён.
Если не ошибаюсь, то это делается так: считается площадь 3-х треугольников, вершинами которых являются вершины треугольника и точка. Если сумма их площадей равна площади исходного треугольника - щелчок внутри области. Единственное, надо учесть возможную погрешность вещественных операций. E-Mail: arigato.freelance@gmail.com
|
07.12.2008, 19:21 | #8 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Нет, не решён. Примерно выше красной черты пишет, что за пределм треугольника...
Вот для круга интересно... |
07.12.2008, 19:32 | #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 |