как узнать принадлежит ли точка к треугольнику (находится ли она в нем) или нет!
Зарание спасибо!!
Как узнать принадлежность |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Как узнать принадлежность |
kojan |
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
как узнать принадлежит ли точка к треугольнику (находится ли она в нем) или нет!
Зарание спасибо!! |
Ozzя |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
|
kojan |
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
Спасибо конечно, но мне там не все понятно, и тмболее как я понял там написанно на СИ, можно ли написать формулу, алгоритм на дэлфи.
Зарание спасибо! |
volvo |
Сообщение
#4
|
Гость |
|
kojan |
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
к сожадению я не понимаю этот алгоритм, моет ест что-нибудь по проще?
|
virt |
Сообщение
#6
|
Знаток Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: 6 |
program point_in_treug; функция sq_treug вычисляет ориентированную площадь треугольника. Соответственно если точка p вне треугольника то сумма площадей треугольников abp ,apc ,pbc бедет больше площади abc ,иначе площади будут равны. -------------------- |
volvo |
Сообщение
#7
|
Гость |
virt, уверен, что это будет работать ВСЕГДА? Я - нет... Доказать?
А тебе, kojan: попроще- попроси пользователя проверить на бумаге, и нажать на Y если точка внутри, и на N если точка - снаружи... Что значит "непонятно"? Есть алгоритм, и его нельзя сделать "проще" или "сложнее"... Не понимаешь - бери другое задание... |
virt |
Сообщение
#8
|
Знаток Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: 6 |
уверен ,докажи..
-------------------- |
virt |
Сообщение
#9
|
Знаток Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: 6 |
там могут быть ошибки только из-за нехватки точности.
-------------------- |
nd2 |
Сообщение
#10
|
Гость |
А есть графическое решение сей же задачи?
Я знаю что оно есть, но не помню его |
volvo |
Сообщение
#11
|
Гость |
Если знаешь - чего спрашиваешь?
А теперь вопрос к тебе: Что значит "графическое решение"? Входные/выходные данные для него приведи... "типа, на экране прямая, чуть ниже и левее точка, ..." Все равно тебе придется решать аналитически. Если ты про ВИЗУАЛИЗАЦИЮ - то по предложенному алгоритму ее и напишешь... P.S. Насчет графического решения: ТЫ на бумаге сможешь решить эту задачу графически? Вот когда решишь, тогда и пытайся объяснить это компьютеру... |
nd2 |
Сообщение
#12
|
Гость |
Если знаешь - чего спрашиваешь? А теперь вопрос к тебе: Что значит "графическое решение"? Входные/выходные данные для него приведи... "типа, на экране прямая, чуть ниже и левее точка, ..." Все равно тебе придется решать аналитически. Если ты про ВИЗУАЛИЗАЦИЮ - то по предложенному алгоритму ее и напишешь... P.S. Насчет графического решения: ТЫ на бумаге сможешь решить эту задачу графически? Вот когда решишь, тогда и пытайся объяснить это компьютеру... Я знаю, но не помню, вот премерный алгоритм: Задача решалась методом заливки треугольника, и определением цвета точки, если цвет совпадал с цветом заливки, то точка соответственно лежит, если нет-то нет, только я вот не могу придумать из какой точки заливать треугольник, нужна формула для точки которая точно будет лежать в произвольном треугольнике, т е т пересечения бесиктрис, а как найти её координаты, если имеешь координаты вершин? Вот в этом и весь вопрос! |
Гость |
Сообщение
#13
|
Гость |
program point_in_treug; Мона пояснение к сеёму, а то начинающим не особо понятно |
Гость |
Сообщение
#14
|
Гость |
|
Hunt666 |
Сообщение
#15
|
Гость |
эта программа имеет недостаточную точность. попробуйте ввести A1(0,0),A2(1,1),A3(0,1) и координаты точки(1.00001;0) эта программа будет писать что точка внутри треугольника а на самом деле она вне его. КТО-НИБУДЬ исправте чтоб было ТОЧНЕЕ
|
volvo |
Сообщение
#16
|
Гость |
Цитата(Console) Running Какие проблемы?0 0 1 1 0 1 1.00001 0 point is outside the triangle |
Hunt666 |
Сообщение
#17
|
Гость |
теперь понял в чем у меня были проблемы не надо менять" if abs (s - s1 - s2 - s3)<_eps" на " if abs (s - s1 - s2 - s3)=0" тогда все будет в порядке спс всем очень хороший сайт
|
Текстовая версия | 23.12.2024 21:24 |