Necesito ayuda con una cosa.
Imaginemos un hexágono con 2 lados iguales y otros 4 iguales, como este:
Lo que yo quiero saber es si cierto punto X,Y está dentro de ese hexágono, sabiendo que ese hexágono puede rotar y desplazarse.
El hexágono está hecho con trigonometria, lo que necesito es una función que me devuelva si un punto está dentro de ese hexágono.
Espero que puedan ayudarme, gracias
1 Saludo
Haber si esto te sirve...
Lo primero que debes de pensar es el algoritmo que vas a utilizar para saber si un punto está dentro del polígono :/
Lo lógico sería tener un conjunto con todos los puntos posibles (480x272 en este caso) y otro conjunto con los puntos situados dentro del polígono (que serán calculados mediante el algoritmo). De esta manera podrás comparar si un punto está contenido en el segundo conjunto o no (si está dentro del polígono o no) ;)
Para diseñar el algoritmo (si, te voy a ayudar pero no te voy a hacer el trabajo sucio :p) también deberás de indicar al algoritmo (o función) cuantos vértices tiene este y su posición (para cada vértice será un punto del primer conjunto). Ten en cuenta que los vértices normalmente deberían ser considerados del segundo conjunto (puntos contenidos).
Con eso debería servirte :D
..
Disculpa, ya lo solucioné por mi cuenta :D.
No buscaba el CODE pero tampoco el Algoritmo.
Un saludo
Círculos
Te iba a decir lo de los círculos jeje, es que cualquier otro metodo usa for, y ya sabes que es lento para esas cosas luadev, pero bueno, si alguien lo hace en c, ahí está el código con los for también.
Saludos
Pobre PSP
:D
Jajajaja con Lua aprendemos a hacer apaños xD
Con círculos hay porcentajes de error, pero vamos, son mínimos
Salu2
Esto ya es algo más
Esto ya es algo más complejo.
He encontrado este código C, será fácil portarlo:
;)
Gracias por la función Xerpi... no la he entendido muy bien pero bueno xD.
Al final lo he solucionado con círculos.
Como estoy trabajando con dimensiones muy pequeñas los píxeles que pierdo son pocos.
Aquí tienen la imagen que lo explica:
La zona roja es el la parte del hexágono donde no detecta el punto.
La zona amarilla y verde (No corresponde al hexágono) donde si lo puede detectar.
Quizá este metodo no sea eficaz, pero para lo que estoy haciendo me vale :D
Un saludo y gracias
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
Si no buscas mucha precisión
Si no buscas mucha precisión es buena idea.
Si quieres puedes probar esto:
tambien puedes utilizar
tambien puedes utilizar cuadros creo que es mas facil. xd
By Aitor
También otra cosa que podrías hacer es esto:
Sígueme en Twitter: @Aitor_db
Eso ya lo hice
Ya probé eso pero pierdes mucho tiempo, ocupas mucha ram y bajan los FPS.
Además no funciona muy bien...
Salu2
Pues depende de cómo lo
Pues depende de cómo lo tengas programado. Si estás tomando la captura cada ciclo por supuesto que se alenta, pero podrías tomarla cada 10-15 ciclos y ni se nota :P
Sí...
La cosa es que yo queria detectar el punto para saber la colisión.
El movimiento de los objetos se realiza a 1PX ciclo. 10-15 ciclos = 10-15 PX de fallo.
Prefiero no hacer eso ya que hay otros factores como por ejemplo el cursor que también lo captura y además no se distingue muy bien los píxeles...
Salu2
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.