|
|
|
||||
|
|
|
Hola gente
Estoy intentando representar unas cajas con Java3D pero no funciona como me gustaría. Veréis, yo creo dos cubos de 2x2x2, y quiero que el segundo cubo este al lado del primero en el eje X. Yo utilizo el metodo seTranslation y le paso que se mueva 2 en el eje X, con l oque debería salir bien, no? pues después de un setTranslation(2,0,0) me aparece esto:
Como veis, se colapsan. Sin embargo, si digo que se mueva 4 a la derecha:
(los colores de las cajas se generan aleatoriamente) Aparecen de puta madre, pero en cuanto aumento el tamaño de alguno se jode el tema. En resumidas cuentas, no sé que referencia toma java a la hora de mover los objetos en el espacio de coordenadas. Yo sé los puntos de la caja para colocarla en el espacio de coordenadas, pero no sé como pasarselo a java, y con el setTranslation ya véis que es un cachondeo
Alguien me ayuda ?
|
|
|
||
PalmaSoft
|
| 21967 aportaciones |
|
|
No te puedo ayudar mucho porque sinceramente no tengo mucha idea de Java3D, pero diría que a lo mejor estás asumiendo que el primer cubo está en la posición 0,0,0, y a lo mejor no es cierto. No sé habrá un getTranslation o similar, si lo hay, deberías hacerlo sobre el primer cubo, sumar 2 a la coordenada X, y entonces aplicar el resultado con setTranslation. Aunque tampoco sé exactamente como lo estás haciendo.
|
|
|
||
| Cels |
| 5281 aportaciones |
|
Urhm, yo tampoco he trabajado con Java3d...
Inicialmente al verlo he pensado "ya está, es que está moviéndolo con respecto al centro", pero no tiene demasiado sentido, creo, aunque justo te quede el centro del cubo en el lado del otro. ¿Qué pasa exactamente cuando aumentas el tamaño? Quizá si me pones un par de ejemplos (aumentando la caja inicial, la final y luego las dos, por ejemplo) te pueda decir... no hacen falta las capturas, me sobra con el texto. Lo malo es lo que digo, no he trabajado con Java3D. Aparte, prueba lo que dice el bueno de Palma tanto con tu cubo inicial como con el desplazado, y mira a ver qué resultado te da en el caso 1 y el 2 que has puesto, por probar...
|
|
|
||
Gangrena
|
| 5601 aportaciones |
|
|
Creo recordar que el eje de cordenadas empieza en la esquina superior izquierda, no en el centro, y que en el eje X se incrementa si vas a la derecha y el eje Y si vas hacia abajo. Dicho esto, igual puede ser un problema de los parámetros que le pasas a la funcion setTranslation; no he usado dicha función, asi que no puedo ayudar mucho, pero supongo que tendrás documentación de la función en la ayuda. La verdad es que tengo muy oxidado el Java3D...
|
|
|
||
| Cartman |
| 5356 aportaciones |
| Jack Bauer wannabe |
|
bueno, lo he solucionado. Yo tenía la coordenada del cubo en su esquina inferior izquierda y al fondo. Esa coordenada la he multiplicado por dos y luego le he sumado la dimension del cubo... si, suena a coña, pero lo he hecho así y sale perfecto
es decir: posX*=2; posX+=dimX; Y así con las tres coordenadas... en fin. Aun no me ha quedado claro el sistema de coordenadas de java, pero tendríais que ver ahora como coloca paquetes mi programa
Ah, y muchas gracias a los tres por responder
|
|
Moderador/es de este foro: Gangrena .
Pincha aquí para mandarle/s un e-mail.
|