| Verfasser | Bericht |
|---|
Daniel Krüger Member
| Eintragen seit: | 14 Mai 2009 |
| Herkunft: | |
| Berichte: | 2 |
| Status: |
Offline
|
|
Geschrieben: 15 Mai 2009 22:59 |
|
Acrobat 3D Navigation
Guten Tag,
auf der Suche nach einem javascript zur Navigation durch das 3D Modell per Tastatur habe ich folgendes script bereits gefunden:
//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); |
Dieses javascript ermöglicht das Navigieren per Pfeiltasten (vor, zurück, links rechts) und den Tasten "u" (hoch) und "d" (runter). Allerdings navigiert man damit im 3D Koordinatensystem. So wird es schwierig die Kamera aus der Sicht eines Fußgängers zu bewegen, da die Koordinaten nicht auf die lokale Kamerablickrichtung umgerechnet werden.
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
|
acronaut Administrator

|
Geschrieben: 22 Mai 2009 16:10 |
|
Hi Daniel,
grundsätzlich ist Deine Anfrage relativ einfach machbar. Wie Du allerdings schon sagst, gehört da ein bisschen Rechnerei dazu. Wie eilig ist es Dir denn mit dieser Funktion? Im Augenblick hab ich nämlich grad noch einige szu tun mit Programmierung, aber ich hoffe, dass ich das jetzt bald mal durch hab.
Gruß,
Andreas Vogel
|
Daniel Krüger Member
| Eintragen seit: | 14 Mai 2009 |
| Herkunft: | |
| Berichte: | 2 |
| Status: |
Offline
|
|
Geschrieben: 22 Mai 2009 18:17 |
|
Hallo,
wenn Sie es bis Juli schaffen könnten wäre das recht.
Vielen Dank.
Daniel Krüger
|
acronaut Administrator

|
Geschrieben: 26 Mai 2009 10:39 |
|
Hallo,
also bis Juli sollten wir das hinbekommen. Kann aber nicht versprechen, dass es kostenfrei wird. Schaun wir mal.
Gruß,
Andreas Vogel
|
archilars Member

| Eintragen seit: | 11 Jul 2010 |
| Herkunft: | |
| Berichte: | 4 |
| Status: |
Offline
|
|
Geschrieben: 12 Jul 2010 10:15 |
|
Hallo!
Auch wenn dieser Post schon etwas älter ist - hat sich diesbezüglich ein Lösung gefunden?
Ich wäre sehr interessiert...
LG,
Lars Oberwinter
|
 Uhrzeit 14:21 | |
|