Board - Thread
« Previous thread | Next thread ->
Board -> Deutschsprachige Foren -> Babylon 5 Mod - Allgemeines -> Mathematik - Brauche hilfe

Answers: 10
< [1] >
Syr3L


Moderator



Posts 162
# Thread - 2010-07-30 at 12:30 AM
So an alle hier

Ich hab da so n klitzekleines problemchen

Und zwar will ich für den Hyperraum eine kleine Navi entwerfen

dazu habe ich die Beacons bei den Sprungpunkten schon eingefügt

Also Beacon A ist mein startpunkt
nun will ich zu Beacon B
Es sind bei beiden Beacons die Koordinaten (X/Y/Z) bekannt
Ich muss eine Gerade berechnen
und auf dieser Geraden dann einen Punkt (GP1), der 100m vom Punkt A entfernt ist (Wegpunkt)

Hier die Koordinaten der Beacons:
Hyperspace Beacon Antra has the Coordinates: X: 41862 Y: 1085 Z: -10076
Hyperspace Beacon Jericho has the Coordinates: X: -38512 Y: 3425 Z: -307
Hyperspace Beacon Arisia has the Coordinates: X: 10237 Y: -7272 Z: -64278
Hyperspace Beacon Nochtal has the Coordinates: X: -5676 Y: 1440 Z: 43669

Wie berechne ich jetzt diesen GP bei der Strecke zwischen Antra und Jericho (Die (X/Y/Z) Koordinate)

Kann mir irgendeiner helfen ich habs leider nicht so mit 3d koordinaten und (laut google) Vektorberechnungen.

Ich bin mir 1000 prozentig sicher dass es total easy is aber ich komm net drauf (PS da in x3tc vom math. standpunkt her nur cos, sin und quadratwurzel vorhanden sind rate ich mal zu den grundrechenarten oder wie ich es so schön ausgedrückt hab zu Fuß)

bin mir aber sicher das das realisierbar ist
ich kann auch noch die distanz dazunehmen aber die ist eig. irrelevant es kann auch 500 m sein oder nur n meter
brauch nur die formel an sich

bei fragen geb ich gern auskunft


------------------
Beyond all frontiers - Lets write some history


Offline
OmEgA


Try to beat me



Posts 120
# Answer: 1 - 2010-07-30 at 8:11 PM
Wenn du von den Koordinaten des Ziels die des Startpunktes abziehst bekommst du den Vektor vom Start zum Ziel. Im Fall von Antra und Jericho also

(-38512, 3425, -307) - (41862, 1085, -10076) = (-80374, 2340, 9769)

Den bringst du nun auf die Länge, die gewünscht ist, z.B. 100m, indem du ihn durch seine aktuelle Länge teilst (normieren auf Länge 1) und mit 100 multiplizierst.
Die Länge eines Vektors (x, y, z) ist d = sqrt(x²+y²+z²).
Hier also

sqrt(6459979876+5475600+95433361) ~ 80999.31381

Entsprechend ergibt sich für den Vektor:

(100/80999.31381) * (-80374, 2340, 9769) = (-99.228, 2.889, 12.061)

Den Vektor addierst du nun zu deinem Startpunkt hinzu und hast damit den Punkt 100m weiter auf der Geraden zum Zielpunkt. Hier also

(41862, 1085, -10076) + (-99.228, 2.889, 12.061) = (41762.772, 1087.889, -10063.939)

Ich möchte nicht ausschließen, dass ich mich vertippt habe, aber im Prinzip müsste das stimmen.

Offline
|
Syr3L


Moderator



Posts 162
# Answer: 2 - 2010-07-30 at 11:47 PM
cool
ich hab mit mav gestern nacht das hier errechnet:
länge=sqrt(x²+y²+z²)
winkel cos(ALPHA)=(x2-x1)/ Länge
dann halt selbiges mit y und z
neuer punkt
x2= cos(ALPHA) * Länge+x1
also sieht mir ziehmlich identisch aus
Ich kann nur sagen
DANKE IHR BEIDEN

p.s wir haben gemeinerweise den ghostpunkt als neuen endpunkt hergenommen

------------------
Beyond all frontiers - Lets write some history

Last edit by Syr3L at 2010-07-30 at 11:55 PM (1x Edited)
Offline
|
Syr3L


Moderator



Posts 162
# Answer: 3 - 2010-08-01 at 12:25 AM
so n käse der integerbereich is zu klkein für diese minimale rechenoperation x²+y²+z²

------------------
Beyond all frontiers - Lets write some history

Offline
|
OmEgA


Try to beat me



Posts 120
# Answer: 4 - 2010-08-01 at 11:22 AM
In dem Fall kannst du den Vektor vorher runter skalieren. Also zum Beispiel alle Komponenten vorher durch 1000 teilen. Wenn du die Wurzel gezogen hast und die Zahlen wieder etwas kleiner werden, kannst du dann wieder mit 1000 multiplizieren. Ein bisschen Genauigkeit verlierst du natürlich dabei.

Offline
|
OmEgA


Try to beat me



Posts 120
# Answer: 5 - 2010-08-01 at 11:23 AM
sqrt(x²+y²+z²) = n*sqrt((x/n)²+(y/n)²+(z/n)² ) für n != 0

Offline
|
Syr3L


Moderator



Posts 162
# Answer: 6 - 2010-08-01 at 2:39 PM
jo dacht ich dann auch sofort aber dann kam das problem auf da es integer sind und keine decimals sind die komma wegfallen
also eine routine erstellt die checkt ob die werte größer als 1000 sind sich dann merkt ob ein element schon umgerechnet wurde
und nachher die einheiten auf gleich gestellt werden
also nach dem quadrieren wieder durch 1000 .. einziges problem is ich glaub ich hab beim quadrieren die einheitensprünge falsch gemacht
vectorX = x2-x1 einheit meter
squareVecX = vectorX * vectorX einheit quadratmeter
sollte vectorX > als 1 km sein rechnet er / 1000
bei squareVecX also einheit quadratkilometer
um allerdings m² zu km² umzurechnen muss ich doch durch (1000*1000) also 1000000 dividiren oder ??
ob dann allerdings die werte net wieder kleiner als null werden ... häng ich wieder in der luft

langsam nerft mich die engine von x3
WAAAAAAAAARUM zum teufel kommt jemand auf die AH SO GLORREICHE IDEEE mal eben den Integer-Wertebereich um ca 2 Bio zu berauben
hat doch e keinen effect bei der engine ob der wertebereich 2 bio und n paar zerquetschte is oder nur 2 mrd .....
dann noch n interface hardcoded obwohl das keinen sinn macht ...

------------------
Beyond all frontiers - Lets write some history

Last edit by Syr3L at 2010-08-01 at 2:48 PM (1x Edited)
Offline
|
Syr3L


Moderator



Posts 162
# Answer: 7 - 2010-08-01 at 4:48 PM
so n käse
hab grad den integer wertebereich von x3tc ermittelt
−2.147.467.296
hier der signed integer
−2.147.483.648
sind beide identisch (die unterscheiden sich nur weil ich beim script nicht so lange warten wollte wie er braucht um alle zahlen durchzurattern
ergo
irgendwas stimmt da nicht beim berechnen??
enginetechnisch

------------------
Beyond all frontiers - Lets write some history

Offline
|
Syr3L


Moderator



Posts 162
# Answer: 8 - 2010-08-01 at 6:39 PM
ok hab jetzt rausgefunden wenn ich die variablen gleich zu anfang mit datatype_int (integer) gesetzt werden passen die bereiche dennoch sind immer wieder werte dabei die den bereich sprengen
es nimmt kein ende doh

------------------
Beyond all frontiers - Lets write some history

Offline
|
OmEgA


Try to beat me



Posts 120
# Answer: 9 - 2010-08-01 at 9:18 PM
Sagen wir mal so, ich habe gestern das erste Mal in meinem Leben den Script Editor geöffnet um ein Script anzupassen (wollte mit Cycrows Cheats mehrere Schiffe gleichzeitig hinzufügen) - Ich habe noch nie etwas gesehen, was dermaßen schlechte Usability hatte. Dass da so Kleinigkeiten wie Zahlenbereiche fubar sind, wundert mich nicht.
Meine höchste Achtung euch gegenüber, die ihr euch tagelang mit dieser Grütze rumschlagen müsst.

Offline
|
Syr3L


Moderator



Posts 162
# Answer: 10 - 2010-08-02 at 9:10 PM
ein tipp zum leichteren editieren wäre der Exscriptor ist etwas besser geeignet auch wenn er einem auch oft mind genau so viel geduld abverlangt wie das ingame-werkzeug

------------------
Beyond all frontiers - Lets write some history

Offline
|
Answers: 10
< [1] >

You must be registered.

English

German



Cookie


Register
Send password

No active vote



2010-09-06 at 12:11 AM
Frachterbewaffnung
2010-09-05 at 11:07 PM
DEMO/ALPHA - ERROR..
2010-09-04 at 9:55 PM
Demo Diskussion (D..
2010-09-04 at 12:09 PM
Will the Demo slow..
2010-08-30 at 4:48 PM
Installationsprobl..
2010-08-30 at 3:26 PM
DEMO/ALPHA - INST..
2010-08-30 at 3:22 PM
Formula 1
2010-08-30 at 12:25 PM
World Cup


----

Besucher
4 Online
55 Heute
223 Gestern
1585 Monat
320479 Gesamt

Wer ist online:

No data found.