Logo Hardware.com.br
bilito
bilito Novo Membro Registrado
23 Mensagens 0 Curtidas

Ajuda simples java

#1 Por bilito 23/11/2005 - 00:02
Olá pessoal gostaria se possivel que me ajudassem com esse exercicio.O que tenho que fazer é o seguinte criar outro cubo embaixo desse e fazer que ele rotacione para o lado esquerdo ou seja ao contrario.Ja tentei mas não consigo ficaria muito grato se alguém me ajudar.O código abaixo é de um cubo que rotaciona para a direita


import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class HelloUniverse extends Applet {

private SimpleUniverse u = null;

public BranchGroup createSceneGraph() {
// Create the root of the branch graph
BranchGroup objRoot = new BranchGroup();

// Create the TransformGroup node and initialize it to the
// identity. Enable the TRANSFORM_WRITE capability so that
// our behavior code can modify it at run time. Add it to
// the root of the subgraph.
TransformGroup objTrans = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRoot.addChild(objTrans);

// Create a simple Shape3D node; add it to the scene graph.
objTrans.addChild(new ColorCube(0.4));

// Create a new Behavior object that will perform the
// desired operation on the specified transform and add
// it into the scene graph.
Transform3D yAxis = new Transform3D();
Alpha rotationAlpha = new Alpha(-1, 4000);

RotationInterpolator rotator =
new RotationInterpolator(rotationAlpha, objTrans, yAxis,
0.0f, (float) Math.PI*2.0f);
BoundingSphere bounds =
new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
rotator.setSchedulingBounds(bounds);
objRoot.addChild(rotator);

// Have Java 3D perform optimizations on this scene graph.
objRoot.compile();

return objRoot;
}

public HelloUniverse() {
}

public void init() {
setLayout(new BorderLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();

Canvas3D c = new Canvas3D(config);
add("Center", c);

// Create a simple scene and attach it to the virtual universe
BranchGroup scene = createSceneGraph();
u = new SimpleUniverse(c);

// This will move the ViewPlatform back a bit so the
// objects in the scene can be viewed.
u.getViewingPlatform().setNominalViewingTransform();

u.addBranchGraph(scene);
}

public void destroy() {
u.cleanup();
}

//
// The following allows HelloUniverse to be run as an application
// as well as an applet
//
public static void main(String[] args) {
new MainFrame(new HelloUniverse(), 256, 256);
}
}

Bruno Morais Aliste
Bruno Morais... Veterano Registrado
1.3K Mensagens 1 Curtida
#3 Por Bruno Morais...
24/11/2005 - 08:41
Bom, para rotacionar o cubo para o lado esquerdo coloque um valor negativo para o provável coeficiente de rotação que na verdade é um parâmetro do construtor padrão da classe RotationInterpolator, explore essa classe para ter todos os detalhes.

RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, objTrans, yAxis, 0.0f, (float) Math.PI*-2.0f);


Agora para criar outro cubo é necessario instanciar um outro objeto na cena, dá uma estudada nas classes que envolvem a criação da cena e do objeto.

[]'s
ASUS M4A87TD EVO

Phenom II X4 955 Black Edition [EMAIL="3.2@4.1Ghz"]3.2@4.1Ghz[/EMAIL]

8GB G.Skill Ripjaws @1.7Ghz

Radeon HD5670 1GB

SB X-Fi Titanium + Edifier R251

LG W2353V HD

Corsair 430w
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal