T
thisisme
Gast
Hallo zusammen!
Vielleicht könnt ihr mir helfen:
ich suche eine Möglichkeit, einen Zoom über die Tastatur zu steuern, habe bisher aber nur Möglichkeiten gefunden, dieses über die Maus zu machen.
Ich habe in meiner Application einen ColorCube und möchte diesen gerne rein- bzw. rauszoomen.
Meine Idee war, eine eigene Behaviour-Klasse zu schreiben, die die Skalierung des Würfels ändert:
Sobald ich den Würfel jedoch vorher drehe, ist die gedrehte Ansicht danach (natürlich) nicht mehr erhalten, habt ihr eine Idee? Oder gibt es einen einfacheren/besseren Ansatz?
Vielen Dank!
Vielleicht könnt ihr mir helfen:
ich suche eine Möglichkeit, einen Zoom über die Tastatur zu steuern, habe bisher aber nur Möglichkeiten gefunden, dieses über die Maus zu machen.
Ich habe in meiner Application einen ColorCube und möchte diesen gerne rein- bzw. rauszoomen.
Meine Idee war, eine eigene Behaviour-Klasse zu schreiben, die die Skalierung des Würfels ändert:
Code:
private class MyZoom extends Behavior {
private TransformGroup targetTG;
Transform3D trans = new Transform3D();
double myscale = 0.4;
@Override
public void initialize() {
this.wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED));
}
@Override
public void processStimulus(Enumeration arg0) {
WakeupOnAWTEvent event = (WakeupOnAWTEvent) arg0.nextElement();
switch(pressedKey) { // etwas abgekuerzt, richtige Taste wird erkannt
case 'p':
myscale -= 0.1;
trans.setScale(new Vector3d(myscale, myscale, myscale));
targetTG.setTransform(trans);
}
wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED));
}
public MyZoom(TransformGroup targetTG) {
this.targetTG = targetTG;
}
Sobald ich den Würfel jedoch vorher drehe, ist die gedrehte Ansicht danach (natürlich) nicht mehr erhalten, habt ihr eine Idee? Oder gibt es einen einfacheren/besseren Ansatz?
Vielen Dank!