Страница: 1 |
Страница: 1 |
Вопрос: Задачка
Добавлено: 06.11.05 16:53
Автор вопроса: yxaxa
Не могу додуматься как сделать задачку. Тут больше на составление условия, чем на программирование. Значить юзер вводит координаты вершин треугольника (х,у). И вводит координаты точки. Нужно определить лежит точка в треугольнике или нет. Чет ниче путного не придумал.
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #1
Добавлено: 06.11.05 18:53
Разбивай с помощью этой точки треугольник на 3 треугольника и ищи их площади, если сумма всех трех получившихся площадей равна площади данного треугольника - точка лежит в нем, если не равна - не лежит.
Тут бы нарисовать, чтоб понятней было:
+
/A\
/ A \
/ M \
/ A A \
+A_______A+
Я конечно не художник )
В общем так, у тебя есть координаты вершин (вершина - это +), и координата точки (точка - это М). Тебе надо найти площадь всего треугольника, и сравнить ее с суммой площадей треугольников полученных разбиением основного треугольника точкой М.
Номер ответа: 2
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #2
Добавлено: 06.11.05 18:54
Мда, весь мой рисунок съехал ( Зря я старался
Номер ответа: 3
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #3
Добавлено: 06.11.05 19:01
Да помоему все понятно и без него.
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 06.11.05 22:43
Еще вариант - посчитать сумму углов, под которыми видны стороны треугольника из этой точки. Если 360 - внутри
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 07.11.05 18:39
algolist.manual.ru
Номер ответа: 6
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #6
Добавлено: 07.11.05 18:56
CreateRgn
PtInRegion
DeleteObject
Номер ответа: 7
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #7
Добавлено: 08.11.05 11:09
Да, в догонку:
Площадь треугольников считай так:
fabs((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))/2
fabs - это абсолютная величина (модуль)
Т.е. берем модуль от выражения в скобках и делим на два.
Вообще-то это преобразованная формула для вычисления определителя для матриц третьего порядка. Наш определитель выглядит так:
|x1 y1 1|
|x2 y2 1|
|x3 y3 1|
P.s. это так, для общего развития )
Номер ответа: 8
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #8
Добавлено: 08.11.05 16:00
а я думал по офрмуле герона считать площадь по известным сторонам
Номер ответа: 9
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #9
Добавлено: 08.11.05 19:06
Так по-моему легче, чем сначала искать полупериметр, потом считать формулу и вычислять корень
Хотя когда-как, я просто написал удобный, как мне кажется, вариант вычисления площади.
Номер ответа: 10
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #10
Добавлено: 08.11.05 21:23
помоему sharp предложил наиболее простой и приемлимый вариант
Номер ответа: 11
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #11
Добавлено: 12.11.05 17:35
Каждому свое.
Номер ответа: 12
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #12
Добавлено: 12.11.05 17:49
но желательно попроще
изобретатели млин велосипеда ))