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); } }
En este post realizaremos una aplicación android que hará uso de la cámara del celular para tomar una foto y guardarla e[...]
Desde que Google anuncio de que dejara de dar soporte al plugin de Eclipse y se concentrara en Android Studio, quienes t[...]
Cuando se inicia el aprendizaje de un lenguaje de programación, nunca debe faltar el clásico «Hola Mundo» 🙂 en Android n[...]
Uno de los mayores problemas que se presenta en el desarrollo de una aplicación, es el acceso a la base de datos y el mé[...]
1. En la ventana de comandos de matlab escribe «mbuild -setup«, sin comillas y presiona enter. >> mbuild -setup We[...]
La API de Android ha ido evolucionado rápidamente y cada vez contiene más funcionalidades que hacen que desarrollar sist[...]