Ну например через расстояния от точки до каждого отрезка. Если расстояние от точки до отрезка отрицательно, значит она находится с одной стороны, если положительно - с другой.
dx = x2 - x1
dy = y2 - y1
d1# = ((y1 - Py) * Dx + (Px - x1) * Dy) / (Dy * Dy + Dx * Dx)
dx = x3 - x2
dy = y3 - y2
d2# = ((y2 - Py) * Dx + (Px - x2) * Dy ) / (Dy * Dy + Dx * Dx)
dx = x4 - x3
dy = y4 - y3
d3# = ((y3 - Py) * Dx + (Px - x3) * Dy ) / (Dy * Dy + Dx * Dx)
dx = x1 - x4
dy = y1 - y4
d4# = ((y4 - Py) * Dx + (Px - x4) * Dy ) / (Dy * Dy + Dx * Dx)
Где x1, y1, x2, y2, x3, y3, x4, y4 - координаты точек, образующих четырехугольник, Px, Py - координаты проверяемой точки
если d1, d2, d3, d4 отрицательны - точка внутри четырехугольника
Еще можно трансформировать проверяемую точку, т.е. повернуть ее на угол поворота прямоугольника и потом проверить пересечение как обычно - без учета поворота.
Поворот точки на угол альфа, через центр cx, cy, можно осуществить так
dx = ox - cx
dy = oy - cy
nx = cx + (dx * cos(alpha) - dy * sin(alpha))
ny = cy + (dx * sin(alpha) + dy * cos(alpha))
Где ox, oy - старые координаты точки, nx, ny - новые координаты точки