Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-02-2012, 10:12   #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 );
			
		}
das funktioniert alles wunderbar, jedoch will ich jetzt die kugel so drehen, dass der punkt direkt zu mir schaut,..dazu hab ich schnell ein bild vorbereitet, dass ihr das mal seht,..

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.!

mediarocker ist offline   Mit Zitat antworten
Alt 06-02-2012, 10:20   #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.
mediarocker ist offline   Mit Zitat antworten
Alt 06-02-2012, 11:15   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
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!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 06-02-2012, 11:34   #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)
mediarocker ist offline   Mit Zitat antworten
Alt 06-02-2012, 11:44   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
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)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 06-02-2012, 11:51   #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,.
mediarocker ist offline   Mit Zitat antworten
Alt 06-02-2012, 12:05   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
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!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 06-02-2012, 13:22   #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,.
mediarocker ist offline   Mit Zitat antworten
Alt 06-02-2012, 14:28   #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,.
mediarocker ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele