REM Анализ взаимного расположения точки и треугольника
DECLARE FUNCTION R! (U!, V!, U1!, V1!, U2!, V2!)
PRINT "Введи координаты вершин треугольника"
INPUT X1, Y1, X2, Y2, X3, Y3
'Отладочная строка для сокращения объема ввода
'X1 = 0: Y1 = 0: X2 = 0: Y2 = 1: X3 = 1: Y3 = 0
PRINT "Введи координаты точки"
INPUT X, Y
K012 = R(X, Y, X1, Y1, X2, Y2)
K312 = R(X3, Y3, X1, Y1, X2, Y2)
K023 = R(X, Y, X2, Y2, X3, Y3)
K123 = R(X1, Y1, X2, Y2, X3, Y3)
K013 = R(X, Y, X1, Y1, X3, Y3)
K213 = R(X2, Y2, X1, Y1, X3, Y3)
IF K012 * K312 > 0 AND K023 * K123 > 0 AND K013 * K213 > 0 THEN
PRINT "Точка находится внутри треугольника": END
END IF
IF K012 * K312 < 0 OR K023 * K123 < 0 OR K013 * K213 < 0 THEN
PRINT "Точка находится вне треугольника": END
END IF
PRINT "Точка принадлежит границе"
END
FUNCTION R (U, V, U1, V1, U2, V2)
REM Анализ взаимного расположения точки (U,V) и прямой,
REM проходящей через точки (U1,V1) и (U2,V2)
R = 0
IF ((U - U1) * (V2 - V1) - (V - V1) * (U2 - U1) > 0) THEN R = 1
IF ((U - U1) * (V2 - V1) - (V - V1) * (U2 - U1) < 0) THEN R = -1
END FUNCTION