En un ejemplo anterior [Seleccionar y mover shapes en html5] se utilizo un método sencillo para detectar si un punto se encuentra dentro un shape de forma rectangular, pero no siempre las figuras que se pinten en un shape tendrían una forma básica, en ocasiones necesitaremos conocer si un punto (X,Y) pertenece a un polígono irregular, buscando una solución por la red, encontré un algoritmo que funciona bastante bien, originalmente estaba escrito para Actionscript, el autor es Miguel Moraleda, pasar a javascript no es nada del otro mundo, aquí les dejo para quien le sirva porque a mi si me sirvió 🙂 :
/** * Funcion que determina si un punto(X,Y) se encuentra dentro de un poligono * @pointList Array de puntos Ej.: Array[ (0,0) , (100,50), (34,67) ] * @p Punto(X,Y) */ function insidePolygon( pointList , p ) { var counter = 0; var i; var xinters; var p1 = new punto(0,0); var p2 = new punto(0,0); var n = pointList.length; p1 = pointList[0]; for (i = 1; i <= n; i++) { p2 = pointList[i % n]; if (p.y > Math.min(p1.y, p2.y)) { if (p.y <= Math.max(p1.y, p2.y)) { if (p.x <= Math.max(p1.x, p2.x)) { if (p1.y != p2.y) { xinters = (p.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x; if (p1.x == p2.x || p.x <= xinters) counter++; } } } } p1 = p2; } if (counter % 2 == 0) { return(false); } else { return(true); } }
Cuando tenemos dominio web pero aun no tenemos el contenido listo es común colocar en su lugar una simple web de aviso q[...]
En este post desarrollaremos una aplicación que nos permitirá leer un código QR y capturar la información que contiene y[...]
En este tutorial crearemos el botón de Google+ Google Circles para una interfaz de escritorio 🙂 si no sabes lo que son e[...]
Firebase es la plataforma para el desarrollo de aplicaciones web y aplicaciones móviles de Google el cual se centra en e[...]
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de[...]
Messenger Rooms es la nueva opción de videoconferencias de Facebook que permite realizar videollamadas con hasta 50 pers[...]