C: point): boolean; begin


C: point): boolean; begin isClockWise := ((B.x - A.x) * (C.y - A.y) -(C.x - A.x) * (B.y - A.y) < 0); end; Пример #3. a) Даны 4 точки A, B, C и D. Определить, пересекаются ли отрезки AC и BD. b) Даны 4 точки A, B, C и D. Определить, является ли четырехугольник ABCD выпуклым. Замечание: если 3 или все 4 вершины оказываются на одной прямой, то четырехугольник считается выпуклым. Решение Отрезки AC и BD пересекаются тогда и только тогда, когда четырехугольник ABCD выпуклый, так что это одна и та же задача. Это верно, по крайней мере, если не обращать внимания на особые случаи, то есть на ситуации, когда точки лежат на одной прямой. Такие случаи можно разобрать отдельно. Для того, чтобы четырехугольник ABCD был выпуклым, необходимо и достаточно, чтобы все 4 обхода A®B®C, B®C®D, C®D®A, D®A®B были бы обходами в одну сторону: либо по часовой стрелке, либо против. Приведем пример функции, где мы используем знакомый уже тип point и функцию из предыдущего
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz