local m = imgui.GetMousePos()
local down_left = imgui.ImVec2(0, 1488) -- нижний левый угол прямоугольника
local down_rigth = imgui.ImVec2(52, 1488) -- нижний правый угол прямоугольника
local up_rigth = imgui.ImVec2(52, 0) -- верхний правый угол прямоугольника
local up_left = imgui.ImVec2(0, 0) -- верхний левый угол прямоугольника
if imgui.IsMouseClicked(1) and isPointInQuadAtAngle(m, down_left, down_rigth, up_rigth, up_left) then
-- click
end
-- вне фрейма
function product(Px, Py, Ax, Ay, Bx, By)
return (Bx - Ax) * (Py - Ay) - (By - Ay) * (Px - Ax);
end
function isPointInQuadAtAngle(p, dl, dr, ur, ul)
p1 = product(p.x, p.y, dl.x, dl.y, dr.x, dr.y)
p2 = product(p.x, p.y, dr.x, dr.y, ur.x, ur.y)
p3 = product(p.x, p.y, ur.x, ur.y, ul.x, ul.y)
p4 = product(p.x, p.y, ul.x, ul.y, dl.x, dl.y)
return ((p1 < 0 && p2 < 0 && p3 < 0 && p4 < 0) || (p1 > 0 && p2 > 0 && p3 > 0 && p4 > 0))
end