Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

VanceRegnet

Frischling

  • »VanceRegnet« ist der Autor dieses Themas

Beiträge: 13

Wohnort: München

Beruf: CAD-Zeichner i.R.

  • Private Nachricht senden

21

09.01.2014, 13:26

Gut,..
dass ich kein Mathematiker bin :crazy:
Ich verstehe das so, dass die Normale irgendwo durch die Ebene gehen kann, bei mir geht sie durch den Ursprung
§x=y=z=0.0;§
Kannst du meine Bescheidenheit tolerieren ?

p.s. Bisher habe ich Latex einer exotischen Biologie zugeordnet, habe grade ein LaTex-Forum gefunden.

SlinDev

Treue Seele

Beiträge: 142

Wohnort: Lübeck

Beruf: Programmierer

  • Private Nachricht senden

22

09.01.2014, 13:49

Wenns nur mir so geht, dann nicht, aber ich habe bisher noch nicht verstanden was du hier überhaupt fragst :P

Was hast du gegeben und wo willst du hin?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

23

09.01.2014, 13:56

Ich verstehe das so, dass die Normale irgendwo durch die Ebene gehen kann, bei mir geht sie durch den Ursprung

Der Punkt ist: Die Normale allein definiert nur, wie die Ebene im Raum ausgerichtet ist. Du willst aber ein Koordinatensystem in dieser Ebene aufspannen. Wir müssen irgendwie festlegen, wohin die x- und wohin die y-Achse zeigen sollen. Wir wissen im Moment nur, dass x- und y- Achse normal aufeinander und normal auf die Normale stehen sollen. Aber wir können x und y beliebig um die Normale herum drehen, die Drehung von x und y um die Normale ist nicht festgelegt. Falls dir diese Drehung egal ist, können wir einfach irgendeine der unendlich vielen Möglichkeiten, die x und y Achse um die Normale herum anzuordnen, wählen. Falls dir die Drehung nicht egal ist, müssen wir diese irgendwie fixieren...

Du sagst du hast 3 Punkte, die die Ebene aufspannen? Woher kommen die genau?

SlinDev

Treue Seele

Beiträge: 142

Wohnort: Lübeck

Beruf: Programmierer

  • Private Nachricht senden

24

09.01.2014, 14:31

Du sagst du hast 3 Punkte, die die Ebene aufspannen? Woher kommen die genau?

Das ist doch völlig egal, wir können ja sicherlich davon ausgehen, dass diese drei Punkte im gleichen Koordinatensystem liegen. Aus diesen drei Punkten ergibt sich dann die Ebene, bis auf die Orientierung der Normale die aber für das Problem eventuell auch völlig egal ist.

Aber wie eben schon geschrieben, weiß ich nicht was hier gesucht wird. Wenn man zwei Vektoren hat und deren Winkel zueinander bestimmen will, dann bietet sich in der Regel das Skalarprodukt an, wenn du mehr zerpflücken möchtest gibt es atan2. Aber ob das ist was du willst ist mir irgendwie noch nicht klar :P

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

25

09.01.2014, 14:37

Du sagst du hast 3 Punkte, die die Ebene aufspannen? Woher kommen die genau?

Das ist doch völlig egal, wir können ja sicherlich davon ausgehen, dass diese drei Punkte im gleichen Koordinatensystem liegen.

Und welches Koordinatensystem ist das genau? Wenn das egal ist, dann sag mir doch, wie genau du die x-, y- und z-Achsen dieses Koordinatensystems bestimmst, wenn nur die Normale gegeben ist? ;)

Aus diesen drei Punkten ergibt sich dann die Ebene, bis auf die Orientierung der Normale die aber für das Problem eventuell auch völlig egal ist.

Das Problem, so wie ich es verstanden hab, ist, Punkte aus einem in 3D eingebetteten 2D Koordinatensystem in das 3D Koordinatensystem zu transformieren. Dazu wird es rein prinzipiell erforderlich sein, zu definieren, wie genau das 2D System im 3D System eingebettet ist...

SlinDev

Treue Seele

Beiträge: 142

Wohnort: Lübeck

Beruf: Programmierer

  • Private Nachricht senden

26

09.01.2014, 15:07

Okay, dann begreife ich auch endlich worauf du mit den Koordinatensystemen hinaus willst :)
Aber auch das ist dann ja nurnoch eine weitere einfache Transformation.

Also wenn ich jetzt das Problem korrekt verstehe, gibt es mehrere Punkte in einem 2D Koordinatensystem und diese sollen jetzt auf eine Ebene im Raum projiziert werden, die durch 3 Punkte in diesem 3D Koordinatensystem bestimmt ist?
Dann lässt sich dafür ja relativ einfach eine Transformation bestimmen:
Erst eine Look At Matrix bestimmen: http://stackoverflow.com/questions/34905…a-lookat-matrix
und dann das Ergebnis eventuell noch verschieben.
Die up, forward und right Vektoren lassen sich aus den drei Koordinaten bestimmen, dazu kann man einen der Punkte direkt als einen der Vektoren nutzen, die Normale als einen der anderen (normalerweise wohl als up Vektor) und der übrige als Vektorprodukt der anderen beiden passend dazu.

Alles weitere kann man dann immernoch anpassen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

27

09.01.2014, 15:13

Okay, dann begreife ich auch endlich worauf du mit den Koordinatensystemen hinaus willst :)
Aber auch das ist dann ja nurnoch eine weitere einfache Transformation.

Und wie man diese weitere Transformation nun berechnen kann, ist nach meinem Verständnis genau die ursprüngliche Frage hier... ;)

Also wenn ich jetzt das Problem korrekt verstehe, gibt es mehrere Punkte in einem 2D Koordinatensystem und diese sollen jetzt auf eine Ebene im Raum projiziert werden, die durch 3 Punkte in diesem 3D Koordinatensystem bestimmt ist?
Dann lässt sich dafür ja relativ einfach eine Transformation bestimmen:
Erst eine Look At Matrix bestimmen: http://stackoverflow.com/questions/34905…a-lookat-matrix
und dann das Ergebnis eventuell noch verschieben.
Die up, forward und right Vektoren lassen sich aus den drei Koordinaten bestimmen, dazu kann man einen der Punkte direkt als einen der Vektoren nutzen, die Normale als einen der anderen (normalerweise wohl als up Vektor) und der übrige als Vektorprodukt der anderen beiden passend dazu.

Richtig, genau darauf wird es hinauslaufen. Allerdings ist zum jetzigen Zeitpunkt noch nicht gesichert, dass wir das auch einfach so machen können. Wir haben irgendwelche 3 Punkte in der Ebene. Daraus können wir die Ebene bestimmen. Aber niemand sagt, dass diese 3 Punkte auch mit den gewünschten x- und y-Achsen in der Ebene korrespondieren (wovon dein Look At Algorithmus aber ausgeht). Genau darum meine Frage an den Threadersteller, woher die Punkte kommen und wie sein Koordinatensystem genau ausgerichtet sein soll... ;)

VanceRegnet

Frischling

  • »VanceRegnet« ist der Autor dieses Themas

Beiträge: 13

Wohnort: München

Beruf: CAD-Zeichner i.R.

  • Private Nachricht senden

28

09.01.2014, 15:36

Das Problem, so wie ich es verstanden hab, ist, Punkte aus einem in 3D eingebetteten 2D Koordinatensystem in das 3D Koordinatensystem zu transformieren. Dazu wird es rein prinzipiell erforderlich sein, zu definieren, wie genau das 2D System im 3D System eingebettet ist...
Jetzt sehe ich, dass ich einen Fehler gemacht habe: Hätte gleich die 3D-Version angeben sollen.

C#-Quelltext

1
2
3
x=sin(2piFta+phiS)sin(2pi(F+1)ta+phiS)
y=sin(2piFta+phiS)sin(2pi(F+1)ta+phiS+phiR) // hier phiR=pi/3
z=sin(2piFta+phiS)sin(2pi(F+1)ta+phiS+phiR) // hier phiR=2pi/3


p.s. Mit LaTex erschien der code wieder einzeilig und ich habe keine griechischen Zeichen gefunden

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

29

09.01.2014, 15:51

Achso, die Punkte sind also schon 3D? Dann ist mir nicht ganz klar, wo genau das Problem liegt? Du willst nun einfach ein Objekt an diese Position verschieben oder wie!?

VanceRegnet

Frischling

  • »VanceRegnet« ist der Autor dieses Themas

Beiträge: 13

Wohnort: München

Beruf: CAD-Zeichner i.R.

  • Private Nachricht senden

30

09.01.2014, 15:59

Du willst nun einfach ein Objekt an diese Position verschieben oder wie!?
An Schiebung hab' noch gar nicht gedacht, nur an Phasenschiebung :thumbup:
Danke dot, jetzt mach' ich mal 'nen Punkt.

Werbeanzeige

Ähnliche Themen