Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-06-2008, 11:15   #1 (permalink)
new user
 
Benutzerbild von PinkDragon
 
Registriert seit: Oct 2005
Beiträge: 140
Punkte, mit demselben Abstand, auf einer Kugel, mit Winkeln bestimmen

Hi,

mein Problem hat zwar nichts mit Flash zu tun, aber da ich mit diesem Forum schon gute Erfahrungen gemacht habe, dachte ich mir, ich stelle die Frage doch hier.
Es ist etwas schwer zu erklären, aber ich versuchs trotzdem

Es geht darum, dass ich in einem Spiel eine Weltkugel erstellen möchte. Jedoch sollen alle Punkte auf der Kugel nicht durch ihre x,y und z Koordinaten bestimmt sein, sondern durch zwei Winkel und dem Radius. Hinzu kommt, dass alle Punkte, die ich auf der Kugel berechnen will (es sollen beliebig viele sein), den gleichen Abstand (oder zumindest so gut wie) voneinander haben sollen. (also von denen in ihrer Nähe)
Mein Ansatz war es, von dem Punkt auszugehen, der auf der z-Achse liegt, und ihn dann um die x-Achse und um die y-Achse zu drehen.
Jedoch ist das Ergebnis unbefriedigend, da sich die Punkte an den Polen häufen.

Zur veranschaulichung hier der kleine (dirty) Quellcode (Fenstergröße 500x500):
Code:
var r = 200;
var s = 30;
var c = Math.PI;

lineStyle(2);

for(var x = -c; x < c; x += c/s){
	for(var y = -c; y < c; y += c/s){
		var xPos = 0;
		var yPos = 0;
		var zPos = r;
		xPos = -zPos*Math.sin(y)*Math.cos(x);
		yPos = zPos*Math.sin(x);
		zPos = zPos*Math.cos(y)*Math.cos(x);
		xPos += 250;
		yPos += 250;
		zPos += 250;
		moveTo(xPos, yPos);
		lineTo(xPos+0.5, yPos+0.5);
	}
}
stop();
Da es bei einem Kreis ja sehr gut funktioniert, ein Koordinaten system aufzubauen in welchem Jeder Punkt durch einen Winkel und dem Radius angegeben ist, sollte es bei einer Kugel doch auch funktionieren...

Hoffe ihr könnt mir weiterhelfen, ich selber stecke fest...

Gruß
PD
__________________
Die Summe aller menschlichen Intelligenz ist eine Konstante.
Das Problem ist das Bevölkerungswachtum...

Gratiswebserver mit MySQL-Datenbank und vieles mehr dank www.lima-city.de!
PinkDragon ist offline   Mit Zitat antworten
Alt 17-06-2008, 11:22   #2 (permalink)
i ate pixels
 
Benutzerbild von pixelslave
 
Registriert seit: Mar 2004
Ort: Augsburg
Beiträge: 528
hm das würde ich mit 360 / n ( punkte auf Kreis ) berechnen

Das machst du einmal für einen kreis auf der xy achse und dann für jedes punktepaar für die zx achse.

Damit haste gleiche abstände und den winkel somit auch

ansonsten bei Wikipedia nachschauen da wird dir immer geholfen
pixelslave ist offline   Mit Zitat antworten
Alt 17-06-2008, 11:53   #3 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.649
Gleichverteilung auf einer Kugel-Oberfläche ist höhere Schule der Mathemathik. Für einen Normalsterblichen kaum nachzuvollziehen.
Kannst dir ja das hier mal angucken:
http://www.harfesoft.de/aixphysik/statistik/chapter4_2/

Hab mich vor einiger Zeit versucht, es vorerst aber mal auf Eis gelegt.
http://www.johnboy-rock.de/test/kugel.html

Hier der Thread dazu:
Gleichmäßige Verteilung auf einer Kugel

Ein "einfacherer" Lösungsweg wäre, sich gleichmäßiger Formen (platonische Körper) zu bedienen, dann sind die Punkte halt immer beschränkt.
__________________
we will stop enhancing the truth in 3, 2, ...
SpecOps-12 ist offline   Mit Zitat antworten
Alt 17-06-2008, 12:29   #4 (permalink)
new user
 
Benutzerbild von PinkDragon
 
Registriert seit: Oct 2005
Beiträge: 140
@Sephiroth1104:
Genau das habe ich ja gemacht, mit dem Ergebnis, welches oben eingesehen werden kann.

@Sephiroth1104:
Platonische Körper helfen mir in dieser Hinsicht leider nicht weiter, auch die Gleichverteilund auf einer Kugeloberfläche (wow, wie man nur auf sowas kommt...) hilft mir leider nicht weiter.
Ich möchte jeden Punkt durch zwei Winkel und dem Radius angeben können, sodass 1° änderung immer den gleichen abstand bedeutet. (Eine Annäherung würde mir auch schon reichen)

Ich werde es noch mit 3 Winkeln und dem Radius versuchen (Willkommen im 4D Raum...) bzw. ein bischen mit den Drehachsen herumspielen.

Bin natürlich weiterhin für Ideen und Links offen

Gruß
PD

PS @Sephiroth1104: Genau soweit bin ich momentan
__________________
Die Summe aller menschlichen Intelligenz ist eine Konstante.
Das Problem ist das Bevölkerungswachtum...

Gratiswebserver mit MySQL-Datenbank und vieles mehr dank www.lima-city.de!

Geändert von PinkDragon (17-06-2008 um 12:31 Uhr)
PinkDragon ist offline   Mit Zitat antworten
Alt 17-06-2008, 13:05   #5 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Wenn ich meinen kurzen Nachforschungen zu diesem Thema glauben
darf, kann man das nicht mit beliebig vielen Punkten machen.

André Michelle (wer auch sonst ) hat dazu mal was gemacht.

http://lab.andre-michelle.com/dynamic-geosphere

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 17-06-2008, 13:18   #6 (permalink)
new user
 
Benutzerbild von PinkDragon
 
Registriert seit: Oct 2005
Beiträge: 140
Das Problem ist, dass ich in einem Koordinatensystem arbeiten möchte, indem die Position nur durch (zwei) Winkel und dem Radius angegeben ist.
Es muss zwischen den Punkten immer (möglichst) genau der gleiche Winkel sein. Aber vllt ist es ja möglich, die Rekursion, die hinter so einer Kugel steckt, auf Winkel umzuberechnen... Klingt kompliziert, aber ich werds mal versuchen.

EDIT:
So, nach langem Überlegen kam ich zu dem Entschluss, dass es so wie ich es mir vorstelle nicht möglich ist. Immer wenn man einen Punkt über zwei Winkel bestimmt, sammeln sich die Punkte an den Enden der 2. Drehachse...
Danke für die Tipps und Links, aber ich werde mir eine andere Lösung suchen müssen.

Gruß
PS
__________________
Die Summe aller menschlichen Intelligenz ist eine Konstante.
Das Problem ist das Bevölkerungswachtum...

Gratiswebserver mit MySQL-Datenbank und vieles mehr dank www.lima-city.de!

Geändert von PinkDragon (17-06-2008 um 17:31 Uhr)
PinkDragon 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele