A.y)- (C.x-A.x)*(B.y-A.y)


A.y)- (C.x-A.x)*(B.y-A.y) == 0) && /* и между двумя другими */ (((B.y <= A.y) && (B.y >= C.y)) || ((B.y >= A.y) && (B.y <= C.y))) return 1; return 0; } /* Функция, которая проверяет, пересекается ли * * отрезок AB с горизонтальной прямой, проходящей * * через C, причем точка пересечения должна * * находиться левее C. Считается, что если один * * конец отрезка лежит на прямой, то отрезок * * пересекается с прямой только если второй конец * * отрезка лежит под прямой. */ int isCrossed (point A, point B, point C) { /* Если точка A -- под прямой, а точка * * B -- над (на), то условие, что пересечение * * левее C эквивалентно тому, что обход * * A -> B -> C -- по часовой стрелке. */ if ((A.y < C.y) && (B.y >= C.y) && ((B.x - A.x)*(C.y-A.y) -(C.x - A.x)*(B.y - A.y) <= 0)) return 1; /* Теперь A и B поменялись местами. */ if ((B.y < C.y) && (A.y >= C.y) &&
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz