Помогите пожалуйста.
Даны два треугольника заданные координатами своих точек.
Нужно узнать площадь получившейся фигуры, в результате пересечения треугольников. Площадь может быть и нулевой.
Задача о треугольниках
Тема переехала. Из Паскакаля. Потому что не сезон 
На самом деле задачка тривиальная. У тебя даны 6 уравнений прямых, решая 9 систем ЛУ с граничными условиями,
находишь все точки пересечения. Если ничего не путаю, то максимум их может быть 6 штук. Полученную фигуру разбиваешь на треугольники, т.е. объединяешь точки пересечения по 3. Находишь площади треугольников и суммируешь. Не забывай о ситуации, когда один треугольник исходный треугольник внутри другого.

На самом деле задачка тривиальная. У тебя даны 6 уравнений прямых, решая 9 систем ЛУ с граничными условиями,
находишь все точки пересечения. Если ничего не путаю, то максимум их может быть 6 штук. Полученную фигуру разбиваешь на треугольники, т.е. объединяешь точки пересечения по 3. Находишь площади треугольников и суммируешь. Не забывай о ситуации, когда один треугольник исходный треугольник внутри другого.
Даже самый дурацкий замысел можно воплотить мастерски
Вам легко говорить. И недо делить ни на какие треугольники. Можно просто найти площадь получившегося многоугольника.AiK писал(а):Тема переехала. Из Паскакаля. Потому что не сезон
На самом деле задачка тривиальная. У тебя даны 6 уравнений прямых, решая 9 систем ЛУ с граничными условиями,
находишь все точки пересечения. Если ничего не путаю, то максимум их может быть 6 штук. Полученную фигуру разбиваешь на треугольники, т.е. объединяешь точки пересечения по 3. Находишь площади треугольников и суммируешь. Не забывай о ситуации, когда один треугольник исходный треугольник внутри другого.
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
А если одна сторона - (частично) общая? :-)AiK писал(а):находишь все точки пересечения. Если ничего не путаю, то максимум их может быть 6 штук
Да ну? Можно просто найти площадь произвольного многоугольника (12-угольника, в худшем случае) по всем его точкам?scorpi.on писал(а):Вам легко говорить. И недо делить ни на какие треугольники. Можно просто найти площадь получившегося многоугольника.
А формулу можно посмотреть? ))
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Так, я вижу 7 случаев.

Как их распознать:
1. Исключаем первые три случая
2. Ищем точки пересечения
3. Если точек пересечения - две
3а. Внутри одного лежит одна точка: Суммируем площадь двух, отнимаем площадь маленького (случай 4)
3б. Если внутри две точки: Площадь внешнего плюс площадь маленького (случай 5)
4. Если четыри точки пересечения (случай 6): Если есть формула произвольного четырёхугольника - используем её, если нет - делим на два треугольника и получаем площадь внутреннего четырёхугольника. Суммируем площадь двух треугольников и отнимаем площадь полученого четырёхугольника.
5. Если точек пересечения - 6 (случай 7) Площадь одного треугольника, плюс площадь трёх маленьких треугольничков
6. Исключительная ситуация: Если я чего-то не учёл

Как их распознать:
1. Исключаем первые три случая
2. Ищем точки пересечения
3. Если точек пересечения - две
3а. Внутри одного лежит одна точка: Суммируем площадь двух, отнимаем площадь маленького (случай 4)
3б. Если внутри две точки: Площадь внешнего плюс площадь маленького (случай 5)
4. Если четыри точки пересечения (случай 6): Если есть формула произвольного четырёхугольника - используем её, если нет - делим на два треугольника и получаем площадь внутреннего четырёхугольника. Суммируем площадь двух треугольников и отнимаем площадь полученого четырёхугольника.
5. Если точек пересечения - 6 (случай 7) Площадь одного треугольника, плюс площадь трёх маленьких треугольничков
6. Исключительная ситуация: Если я чего-то не учёл

- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Блин, хорошая, ведь задачка ....

7. Случай 8 - частный случай от 5-ого, но не вздумать его исключать, как третий
8. Случай 10 - частный случай от 6-го, но точек пересечения всего три
9. Случай 12 - частный случай от 4-го
10. Случай 13, обратить внимание, если есть одна общая точка.
11. Случаи 9 и 11.
Совершенно особые случаи. В одинадцатом площадь одного, плюс площади двух маленьких
в девятом - делить на треугольники и суммировать ...
Хм .... Задумаешься тут .... Как бы это всё оптимизировать.

7. Случай 8 - частный случай от 5-ого, но не вздумать его исключать, как третий
8. Случай 10 - частный случай от 6-го, но точек пересечения всего три
9. Случай 12 - частный случай от 4-го
10. Случай 13, обратить внимание, если есть одна общая точка.
11. Случаи 9 и 11.
Совершенно особые случаи. В одинадцатом площадь одного, плюс площади двух маленьких
в девятом - делить на треугольники и суммировать ...
Хм .... Задумаешься тут .... Как бы это всё оптимизировать.
блин классическая задачка - поищи в инете на тему машинная графика.
я дома конспекты порою
реально тебе надо определять точки пересечения двух прямых
а на это есть куча алгоритмовпосле этого можно решать задачу закраски (задача о принадлежности точки к многоугольнику) - количество таких точек и есть площадь
я дома конспекты порою
реально тебе надо определять точки пересечения двух прямых
а на это есть куча алгоритмовпосле этого можно решать задачу закраски (задача о принадлежности точки к многоугольнику) - количество таких точек и есть площадь
В SAD - все в SAD.