| |||||||
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: Apr 2005 Ort: Augsburg
Beiträge: 51
| Sphere und Objekte darauf anordnen
Hallo, ich habe eine Sphere als Weltkugel.. schaut schonmal ganz toll aus. Jetzt möchte ich auf der Weltkugel zu bestimmten Ländern Objekte draufsetzen, also zB. nen Plane an eine bestimmte Position auf der Weltkarte. Ich hab schon etwas recherchiert und man kann wohl Objekte auf die Vertices der Sphere ausrichten, bei mir funktioniert das allerdings nicht. Sobald ich die Kugel drehe, ändern sich die Vertices nicht, die blieben immer gleich. Woran könnte das liegen? Und noch ne Frage: ich benutze ein MovieAssetMaterial als Textur. Kann ich innerhalb des MovieClips weitere Punkte (auch als MovieClips) anlegen, und dann deren Texturkoordinaten auf die Raumkoordinaten übertragen?? Dann könnte ich z.B. in Deutschland nen Punkt setzen, die Koordinaten auf der Kugel berechnen und dann dort wieder nen 3D-Sprite oder ein Objekt draufsetzen. Ist sowas überhaupt möglich? Danke schonmal, Martin |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 192
|
najo ich hab das mit positionen auf ner sphere mit longitude latitude gemacht ![]() ActionScript:
packst du nun die sphere und die planes oder was auch immer in einen ObjectContainer3D und drehst den bleiben auch die planes/etc an der richtigen stelle ![]() beachte bitte das deine Textur entsprechend beim nullmeridian anfangen muss also textur X=0 ungefähr bei London - andernfalls muss du den versatz abziehen von ähm.. lng wars
|
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 192
|
ich bin zwar kein mathegenie aber würde mal sagen so: Code: lng = 360/texturbreite * x - 180 lat = 180/texturhöhe *y - 90 keine gradwerte also:ActionScript:
alternativ kannste aber auch bei googleearth nachschauen wo ein ort liegt Geändert von Plopsi (13-10-2009 um 17:57 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Apr 2005 Ort: Augsburg
Beiträge: 51
|
Hi, danke für die Formeln... nur irgendwie hauts nicht so ganz hin: Link zum Flash auf der Erde sind kleine rote Punkte zu sehen. Z.B. bei London. Das sind MovieClips auf meiner Textur. Ich berechne die Längen/Breitengrade dieser MovieClips und übertrage die Position dann auf eine Position im 3D-Raum über diese Funktion: Code: var l = 360 / w2 * (MovieClip( MovieAssetMaterial( CompositeMaterial(earthNew.material).materials[1] ).movie )["point"+i].y) - 90;
var lo = 180 / h2 * (MovieClip( MovieAssetMaterial( CompositeMaterial(earthNew.material).materials[1] ).movie )["point"+i].x) - 180;
...
var coords:Number3D = sphericalToCartesian( radius, l, lo );
p.x = coords.x;
p.y = coords.y;
p.z = coords.z;
...
private function sphericalToCartesian (radius:Number, theta:Number, phi:Number):Number3D
{
var x:Number = radius * Math.cos(theta) * Math.sin(phi);
var y:Number = radius * Math.sin(theta) * Math.sin(phi);
var z:Number = radius * Math.cos(phi);
x = radius * Math.sin(theta) * Math.sin(phi);
y = radius * Math.cos(theta);
z = radius * Math.sin(theta) * Math.cos(phi);
return new Number3D(x, y, z);
} Woran könnte das liegen? Geändert von theforceismine (15-10-2009 um 09:51 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 192
|
ich glaub du hast l und lo vertauscht ActionScript:
denk dran das london in der der textur auf X=0 liegen muss Geändert von Plopsi (15-10-2009 um 12:32 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Apr 2005 Ort: Augsburg
Beiträge: 51
|
Hi, ich habe jetzt folgenden Code.. rein logisch müsste das alles stimmen, praktisch funktionierts noch nicht ganz: Diesen kryptischen Code mit der CompositeTextur hab ich jetzt ersetzt, einfach durch den "pointsMc" also den MovieClip, der die roten Punkte enthält. Außerdem hab ich die Textur so geändet, dass sie bei London beginnt, hab da auch ne rote Linie als Meridian eingebaut. Die "sphericalToCartesian" Funktion hab ich auch nochmal von ner Formelsammlung aus dem Netz überprüft und zur besseren Verständlichkeit die long und lat Parameter eingebaut. Außerdem hatte ich vergessen die Grad in Rad umzuwandeln. Es haut jetzt fast hin.. nur irgendwie schauts jetzt so aus, als wären die Punkte von den Koordinaten am Äquator nach unten gespiegelt... zumindest liegen sie schonmal auf den korrekten Längengraden. Also wir sind fast am Ziel! ![]() PHP-Code: Erde |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 192
|
was zu hölle rechnest du denn da probier mal das:ActionScript:
ok bei den achsen wiess ich nicht genau aber für away3d siehts so aus: ActionScript:
Geändert von Plopsi (15-10-2009 um 15:00 Uhr) Grund: achsen |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Apr 2005 Ort: Augsburg
Beiträge: 51
|
du, meine Formel macht nichts anderes als deine ![]() Rechne mal durch... gibt das gleiche Ergebnis. Ich habs jetzt gelöst... es funktioniert!!! So wie oben bereits beschrieben, man muss nur eine Kleinigkeit ändern. Da das Papervision Koordinatensystem eine umgekehrte Y-Achse hat muss man schreiben: PHP-Code: |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Apr 2005 Ort: Augsburg
Beiträge: 51
|
ach ich verzweifel noch.. irgendwie funzt das doch nicht so, wie ich mir das vorgestellt hab. Solange die Punkte noch relativ nahe am Null-Meridian sind, also ca. in der Nähe von London hauts hin.. aber sobald die sich weiterwegbewegen, z.B. Nord- oder Südamerika, dann verschiebts die wieder an andere Stellen, wo sie eigentlich nicht sein dürften. Ich verstehs nicht... sicher dass die Umwandlung von x/y nach lat/long so passt? |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 192
|
öhm ehrlich gesagt nein aber probier doch einfach mal n paar bekannte werte einzugeben:hier n link zu ner tabelle Tabellen der Astronomie: Geogr.Koordinaten von Städten in aller Welt |
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: Apr 2005 Ort: Augsburg
Beiträge: 51
|
so.. jetzt passts 1:1.... da war ja alles verdreht - habs gerade herausgefunden, indem ich über den Globus verteilt 4 Punkteachsen angelegt hab und geschaut hab, an welchen Punkten die zusammenlaufen. Und nachdem der Schnittpunkt irgendwo im Pazifik anstatt am Nordpol war, konnte dann doch irgendwas nicht so ganz stimmen. ![]() Ich dokumentiere das jetzt mal, gibt ja bestimmt noch mehr Leute, die so etwas ähnliches bauen möchten - folgendes muss man ändern: PHP-Code: Viele Grüße, Martin Geändert von theforceismine (20-10-2009 um 15:56 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Objekte Kreisförmig anordnen | enky | Flash Einsteiger | 4 | 04-09-2007 10:25 |
| Objekte rechts anordnen? | Samuel | HTML und CSS | 3 | 15-02-2006 15:20 |
| Objekte per ActionScript anordnen | manna76 | ActionScript 1 | 1 | 21-06-2004 11:04 |
| Objekte anordnen | court | ActionScript 1 | 4 | 10-06-2003 18:17 |
| objekte im 3D anordnen | Mick | Softwarearchitektur und Entwurfsmuster | 1 | 24-11-2001 07:44 |