Паскаль - Статья

Паскаль, графическое программирование
  1. Найти площадь треугольника ABC.
  2. Найти площади треугольников ABX, BCX и ACX.
  3. Сравнить. Если площадь треугольника ABC равна сумме площадей ABX, BCX и ACX, значит точка принадлежит треугольнику, иначе - нет.

    Второй вариант несколько сложнее в понимании. Смотрим рисунок "Теория. Вариант 2". Ситуация такая же: ABC - треугольник, X - точка.
  1. Находим площадь треугольника ABC.
  2. Находим расстояние от точки X до каждой из вершин треугольника.
  3. Выбираем наименьшее из них. (В данном случае BX)
  4. Находим площадь треугольника с новой точкой вместо ближайшей. (Здесь XC)
  5. Сравниваем. Если площадь первого треугольника больше площади второго, значит точка не принадлежит треугольнику, иначе - принадлежит.

    По сложности реализации оба варианта примерно одинаковы, но дело в том, что во втором варианте есть небольшой процент неточности - когда точка лежит очень близко к грани треугольника, но не принадлежит ему. Поэтому подробно рассмотрим только первый вариант.

Подробнее … Клуб программистов Delphi
Copyright © 2006-09.