Guten Tag,
auf der Suche nach einem javascript zur Navigation durch das 3D Modell per Tastatur habe ich folgendes script bereits gefunden:
Code: Alles auswählen
//get/set active camera
myCamera = scene.cameras.getByIndex(0);
myCamera.roll = 0.0;
myMoveDistance = 1;
//inform the user
console.println("Use the following keys to navigate in the scene:");
console.println("* Arrow Keys = Left/Right/Forward/Back");
console.println("* u or d = Up/Down");
console.println("* Home or End = Camera Roll(reversed on Mac/Win)");
//Create the handler, and set to drive camera
myKeyHandler = new KeyEventHandler();
myKeyHandler.onEvent = function(event)
{
switch(event.characterCode)
{
case 28: //Left arrow
myCamera.targetPosition.x = myCamera.targetPosition.x - myMoveDistance;
myCamera.position.x = myCamera.position.x - myMoveDistance;
myCamera.roll = 0.0;
break;
case 29: //Right arrow
myCamera.targetPosition.x = myCamera.targetPosition.x + myMoveDistance;
myCamera.position.x = myCamera.position.x + myMoveDistance;
myCamera.roll = 0.0;
break;
case 30: //Up arrow
myCamera.targetPosition.y = myCamera.targetPosition.y + myMoveDistance;
myCamera.position.y = myCamera.position.y + myMoveDistance;
myCamera.roll = 0.0;
break;
case 31: //Down arrow
myCamera.targetPosition.y = myCamera.targetPosition.y - myMoveDistance;
myCamera.position.y = myCamera.position.y - myMoveDistance;
myCamera.roll = 0.0;
break;
case 117: //U for up
myCamera.targetPosition.z = myCamera.targetPosition.z + myMoveDistance;
myCamera.position.z = myCamera.position.z + myMoveDistance;
myCamera.roll = 0.0;
break;
case 100: //Do for Down
myCamera.targetPosition.z = myCamera.targetPosition.z - myMoveDistance;
myCamera.position.z = myCamera.position.z - myMoveDistance;
myCamera.roll = 0.0;
break;
case 1: //Home or End (Reversed on Mac/Win)
myCamera.roll = myCamera.roll + 0.1;
break;
case 4: //Home or End (Reversed on Mac/Win)
myCamera.roll = myCamera.roll - 0.1;
break;
}
}
//register and process
runtime.addEventHandler(myKeyHandler);
Lange ist es her (analytische Geometrie) und nach erfolglosem Grübeln kann ich die Aufgabenstellung nicht lösen. Man müßte es mit Koordinaten Umrechnungen hinbekommen (Trigonometrie, Tangenz, Cosinus, delta x, delta y), dass das lokale Kamerakoordinatensystem auf das Weltsystem umgerechnet wird. So liese sich dann per Pfeiltasten eine Navigation aus der Sicht des Fußgängers realisieren.
Die bisherige Navigationsmöglichkeit per Mouse ist sehr gewöhnungsbedürftig und auch für 3D Experten sehr schwierig zu verwenden. Mit der Kombination aus Tastaturnavigation in der xy Ebene (spazieren gehen) und der Mousenavigation in der Schwenkrichtung (Blick schwenken, umhersehen) könnte man ein benutzerfreundliches Steuerungstool entwickeln. In der Architekturpräsentation wäre dies sehr sinnvoll.
Bitte berichten Sie mir über die Machbarkeit. Eventuell können Sie auch ein Ergebnis posten.
MfG
Daniel Krüger