Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Kilowatt

#1
Lo que estais discutiendo es una cuestion meramente semantica, ni fisica, ni biologica. Todo nace, todo muere, y todo responde al estimulo. Utilizas vida para restringirte a organismos de determinada composicion y comportamiento, es solo una cota, no va mas alla.
#2
Siento no haberlo podido probar antes. Has hecho bastantes progresos, te felicito.

Aunque me imagino que querras seguir desarrollandolo, asi que tengo un par de preguntas. Cuando te acercas a un objeto, aparecen unas cajas con los vertices marcados. ¿Esas son las bounding boxes de las que hablamos? Si asi es, en muchas ocasiones resulta que no estan alineadas con la caja de texturas, asi que puedes penetrar en la textura aunque las cajas en si no se intercalen.

Parece que las colisiones entre estas cajas se detectan perfectamente y que has conseguido que permanezca solo la componente tangencial de la velocidad, asi que quiza sea solo un problema de alinear las cajas a las texturas, y con eso quedaria bien. Bueno, tu eres el que esta manejando el proyecto de primera mano, asi que ya me cuentas si estoy diciendo disparates. Suerte!
#3
Seguramente todo esto se pueda optimizar, pero eso ya lo vas mirando tu que ahi estoy un poco verde. Quiza seria mejor idea para comprobar cual de los dos sentidos es el correcto que te fijes en los modulos de los vectores resta entre la velocidad y las posibles direcciones, y el menor es el correcto. Creo que es mejor calcular unas cuantas sumas y restas que un arccos. Suerte.
#4
Pues como escribir matematicas aqui es tedioso y encima no se entiende bien, te subo una imagen con la idea escrita en papel si te parece bien.

Edito: Ya esta.

http://img46.imageshack.us/img46/5752/003lbp.jpg

Si hay algo que no se entiende (no me extrañaria, tengo una caligrafia vergonzosa) dimelo.
#5
Como dicen arriba, podrias simplemente pararlo, o si sabes un punto que hace colision me imagino que sabras la cara del otro objeto con la que estas colisionando, y si conoces la direccion del movimiento y la velocidad, podrias hacer que en el momento de la colision solo permaneciera la componente de la velocidad tangencial a dicha superficie, si la hubiera. Asi la caja cuando chocara se seguiria moviendo pero nunca hacia dentro de la otra, sino pegado a ella, deslizando.

Simplificandolo para un objeto movil y otro inmovil, se puede hacer de una manera sencilla, pero me tienes que decir si puedes saber sobre que cara del objeto inmovil chocas y si conoces la velocidad y la direccion del objeto movil en todo momento. Si conoces esas tres cosas se hace facil.

#6
Seria interesante ver como lo has hecho, o que lo explicaras por encima si estas de acuerdo. ¿A que te refieres con avanzar hacia ellas?
#7
Gran aporte, si señor. Me gustaria preguntaros algo.

Vengo de Java, he aprendido lo basico en la escuela. Operadores, bucles, estructuras de almacenamiento, colecciones, recursividad/iteratividad, clases de complejidad, paralelismo y un poquito de sockets. Me gustaria aprender C, ¿Que libro me recomendarian para empezar, sabiendo lo que se?

Muchas gracias.
#8
Me imagino que si le piden solo funciones if y while, es para que no use math. Creo que tu problema esta en que no sabes calcular una raiz enesima matematicamente, primero averigua esto, y luego programalo. Empieza por aqui:

http://platea.pntic.mec.es/~anunezca/ayudas/algoritmo_raiz/algoritmo_raiz.htm

http://es.wikipedia.org/wiki/C%C3%A1lculo_de_la_ra%C3%ADz_cuadrada

Se puede generalizar para raiz enesima.
#9
Bueno, yo he estado pensando como detectar las colisiones, y personalmente si las cajas son rectangulares, de lados sin ninguna relacion entre si, y que pueden medir cualquier valor distinto de 0, creo que no se puede hacer de una manera sencilla. Seria mas o menos abordable si las cajas no giraran, pero ademas pueden incidir una sobre otra en cualquier grado de inclinacion.

Ademas tengo una pregunta ¿Las cajas pueden atravesarse entre si? Si no fuera asi (seria como simular solidos) se cumpliria una propiedad interesante, y que da pie a simplificar el algoritmo: "En todos los choques, al menos un vertice de una de las cajas de encuentra sobre la superficie de la otra". Y podria empezar a trabajar por ahi, comprobando la pertenencia de los vertices de la caja 0 a las rectas que delimitan la 1, y que ademas lo hagan en el intervalo de valores en que los puntos de dicha recta forman el lado de la caja 1. Con un calculo reciproco de este estilo, para todos los vertices y para todas las rectas, habria una deteccion 100% segura de la colision o no colision, y ademas se sabria al menos un punto de contacto, que quizas te sirva para, posteriormente, jugar con las fisicas como comentas.

En principio con solo la distancia entre los centros no se puede detectar con absoluta certeza una colision de cajas rectangulares de forma arbitraria, y que pueden no estar alineadas con los ejes de ninguna forma, pues son capaces de girar sobre su centro incrementos de angulo no acotados.
#10
He estado pensando un poco lo de las colisiones, y aunque creo que voy camino de dar con un metodo, me facilitaria mucho las cosas saber con que informacion de las bounding boxes cuentas en todo momento, ademas de las coordenadas del centro y la longitud de sus lados. Si pudiera conocer su grado de inclinacion o la posicion concreta de sus vertices en ese momento por ejemplo atajaria bastante, ya que con lo que se estoy haciendo cosas demasiado complejas para calcular algo tan simple, asi que dudo que tenga alguna utilidad.