| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 67
| Punkt auf Kugel durch rotation der kugel positionieren
hallo zusammen,.. ich habe gerade ein kleines matheproblem,..ich habe eine kugel mit radius r und auf deren oberfläche platzier ich einen punkt, der von mir errechnete x,y,z koordinaten bekommt. (geocoding) ich kenne also die kugel und ihren radius um den nullpunkt. ebenso kenn ich die x,y und z koordinaten des punktes, der sich genau auf der oberfläche befindet. ich kenne auch die latitude und longitude über die ich die x, y und z coordinaten des punktes errechne. hier ist die funktion, die mir die x,y und z coordinate über die long und lat gibt. Code: private function translateGeoCoord( latitude:Number, longitude:Number, radius:Number ):Number3D{
//Convert latitude and longitude to radians.
latitude = Math.PI * latitude / 180;
longitude = Math.PI * longitude / 180;
//Adjust latitude and longitude by radians.
latitude -= ( latitudeDegreeOffset * ( Math.PI/180 ) ); // offset latitude by n degrees (in radians).
longitude -= ( longitudeDegreeOffset * ( Math.PI/180 ) ); // offset longitude by n degrees (in radians).
//Spherical to cartesian coordinate conversion formula.
//---- r (radius) ----//
//---- θ (theta) = latitude ----//
//---- φ (phi) = longitude ----//
//---- x = r sin θ cos φ ----//
//---- y = r sin θ sin φ ----//
//---- z = r cos θ ----//
var x:Number = radius * Math.sin( latitude ) * Math.cos( longitude );
var y:Number = radius * Math.sin( latitude ) * Math.sin( longitude );
var z:Number = radius * Math.cos( latitude );
//Switch z and y (since z is forward) (see the right-hand rule).
return new Number3D( x, z, y );
} vielleicht kann mir da ja jemand helfen. das ganze wird mit papervision programmiert und der punkt ist ein unterobjekt der kugel,..somit würde ich gern die kugel rotationX, Y, Z,..so drehen, damit der punkt direkt in meine richtung schaut,.. erste kugel: punkt liegt durch die funktion irgendwo auf der kugel (kugel hat rotation xyz = 0) zweite kugel: diese situation wird gesucht,..kugel dreht sich so über x y und z, damit sie direkt zu mir nach vorne in die kamera schaut. VIELEN DANK,..hoffe mir kann ein matheass helfen.! |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 67
|
der punkt wird gerade von mir durch einen würfel repräsentiert,..den würfel kann ich auf die oberfläche der kugel ausrichten lassen,..also das er genau drauf steht,..somit kann ich auch seine rotationX,Y,Z auslesen, falls das was helfen könnte,..über diese werte kann ich sicher die kugel auch ausrichten oder? würfel ist ein unterobjekt der kugel, somit dreht er sich mit der kugel mit. |
| | |
| | #3 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Die Geokoordinaten sind doch bereit sder Winkel, auf den Du die Kugel gedreht werden soll?! Wenn Du z.B. den Punkt 10°O und 50°N hast, musst Du die Kugel genau entgegengesetzt drehen - also -10° um die yAchse und dann -50° um die xAchse und zwar genau in dieser Achsenreihenfolge.
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 67
|
hmm...das hab ich mir auch so gedacht,..leider funktioniert das nicht,..am anfang ist die kugel auf rotXYZ = 0 der punkt wird gesetzt und ist auch auf der richtigen stelle (weltkarte) jetzt drehe ich wie du beschrieben hast die kugel, doch der punkt ist dann eben irgendwo schräg oben und nicht direkt bei mir,... also lat: 51 (=N) und lon: 10 (=0) wär ein punkt irgendwo in deutschland... der punkt wird gesetzt und jetzt richte ich die kugel aus mit: kugel.rotationY=-10; kugel.rotationX=-51; und der punkt ist jetzt schräg links oben... Geändert von mediarocker (06-02-2012 um 11:35 Uhr) |
| | |
| | #5 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Das hat dann wahrscheinlich was mit der Achsenreihenfolge in Papervision zu tun ![]() Stopf Deinen Kugel mal in einen zusätzlichen Container. Diesen Container drehst Du dann nur um die xAchse und die Kugel im Inneren nur um die yAchse.
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (06-02-2012 um 11:48 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 67
|
done,... leider hab ich hier das selbe visuelle ergebnis,.. this.earth.rotationY=-10; this.cont.rotationX=-51; ich geh mal was essen und dann versuch ich es andersrum,..nicht die kugel zu drehen, sondern die kamera rundum laufen zu lassen,...vielleicht finde ich so ne lösung,..aber danke euch allen fürs mitdenken,...wenn jemand noch ne idee hat,..egal ob kugel zur kamera oder kamera zum punkt auf kugel,..immer her damit,. |
| | |
| | #7 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Hast Du's mal mit Vorzeichenwechseln versucht? Es gibt schließlich unterschiedlich Vorstellenungen davon in welche Richtung Achsen zeigen und Rotationen positiv sind ![]() Um das zu testen, würde ich die Rotationen mal einzeln anwenden...
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 67
|
hab ich schon versucht,..leider funktioniert das auch nicht,..in keiner kombination...ich versuch es jetzt mal über die kamerabewegung und nicht über die kugelrotation zu lösen und meld mich sobald das umgeschrieben ist...mein plan ist jetzt folgender,.. ich bewege die kamera zum markierten punkt, jedoch in einem weiteren radius,...dann zwinge ich sie über lookAt zum blick auf DisplayObject3D.ZERO...so sollte es funktionieren,. |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 67
|
habs jetzt über die kamera gelöst,...das funktioniert jetzt wunderbar,..diese tweent sich sauber über ein bezier an die verlängerte position des markers (vom mittelpunkt der erde aus) und richtet ihren blick einfach auf den mittelpunkt,..damit ist der marker immer in der mitte im bild,..danke dir fürs mitdenken,. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Kugel Kollision | _crypto_ | Softwarearchitektur und Entwurfsmuster | 7 | 12-12-2007 15:41 |
| Rotation von MC durch Klick auf BTN in MC & Stop an best. Punkt | avay | Flash Einsteiger | 2 | 16-03-2007 06:56 |
| Punkt auf Kugel-Oberfläche | Alphanimal | ActionScript 1 | 6 | 11-07-2005 00:15 |
| 3D-Kugel | Lukin | ActionScript 1 | 8 | 06-05-2004 11:51 |
| Disko Kugel / Spiegel Kugel | kotzkruemel | Flash 4 und Flash 5 | 1 | 23-10-2002 13:29 |