Jump to content

Nueva Usefull - isPointInPolygon


Bc#

Recommended Posts

Me encontré por ahí este codigo para saber si un punto pertenece a un poligono, esto es muy util cuando queremos hacer un boton con forma de polígono y queremos buscar si nuestro puntero esta dentro del polígono.

Aquí esta el código:

--la tabla debe ser del estilo {{x = 10, y = 20}, {x = 59, y = 13, ...}} 
function isPointInPolygon(poli, px, py) 
    local c = false; 
    local npol = #poli; 
    local j = npol-1; 
    for i = 0, i < npol do 
        j = i; 
        if ((((poli[i].y <= py) && (py < poli[j].y)) or 
            ((poli[j].y <= py) && (py < poli[i].y))) and 
            (px < (poli[j].x - poli[i].x) * (py - poli[i].y) / (poli[j].y - poli[i].y) + poli[i].x)) 
            c = not c; 
        end 
    return c; 
end 
--poli es una tabla que contiene cada uno de los puntos del polígono 
--px y py son las coordenadas del punto a buscar dentro del polígono 

PD: Alexs, vez que no era tan dificil.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...