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