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

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

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа