0 Daumen
1,3k Aufrufe

ich habe folgendes Problem.

Ich habe eine 2D Kontur bestehend aus Punkten um den Ursprung. Ein Punkt dieser Kontur könnte bzw. sein:

\( \vec{r} \)  =   \( \begin{pmatrix} x\\y\\ \end{pmatrix} \)

Des weiteren habe ich eine Ebene mit dem Normalenvektor: \( \vec{n} \)  =  \( \begin{pmatrix} n_x\\n_y\\n_z \end{pmatrix} \)

sowie dem Stützvektor: \( \vec{l} \)  =  \( \begin{pmatrix} l_x\\l_y\\l_z \end{pmatrix} \)


Mein Ziel ist es nun, die Kontur auf der Ebene um den Punkt \( \vec{l} \) zu positionieren so dass sie auf der Ebene liegt.Stellt euch bzw. vor ihr habt einen Kreis um den Ursprung in 2D und wollt diesen an eine Bestimmte Stelle auf einer Ebene in 3D positionieren. Es ist wahrscheinlich sehr einfach, ich bekomme es leider mometan nicht so recht hin.

Ein Punkt auf der Ebene wird nun also wie folgt beschreiben.

\( \vec{n} \) * (\( \vec{r} \)  -  \( \vec{l} \)  )  = 0


Wie berechne ich nun die 3D Koordinaten der Punkte der Kontur im Rraum aus dieser Gleichung und dem 2D Punkt der oben erwähnten Kontur.


Vielen Dank im Voraus :)

Christina

Avatar von

3 Antworten

+2 Daumen

Hallo Christina,

um dies zu realisieren benötigst Du noch eine Angabe in welche Richtung (in 3D) auf der Ebene das \(x\) aus der 2D-Welt zeigen soll. Daher eignet sich in diesem Fall besser die Parameterdarstellung zur Darstellung der Ebene. Das \(\vec{u}\) gibt die Richtung von \(x\) vor:

$$E: \space \vec{x} = \vec{l} + \vec{u} \cdot s + \vec{v} \cdot t $$ mit:\( \quad \vec{u}, \vec{v} \perp \vec{n}, \quad |\vec{u}|=|\vec{v}| = 1\) wenn Du keine Skalierung wünschst und  \(\vec{u} \perp \vec{v}\). Daraus bildest Du eine Matrix \(A\) mit der man die 3D-Koordinaten berechnen kann:

$$\vec{r}_{3D} = A \cdot \vec{r} + \vec{l} = \begin{pmatrix} \vec{u} & \vec{v} \end{pmatrix} \cdot \vec{r} + \vec{l} $$

Beispiel: \(\vec{r}\) sei die Kontour eines Dreiecks mit den Eckpunkten

$$\vec{r} = \left\{  \begin{pmatrix} 0 \\ 0 \end{pmatrix}, \begin{pmatrix} 3 \\ 0 \end{pmatrix}, \begin{pmatrix} 0 \\ 2 \end{pmatrix} \right\}$$

und die Ebene ist definiert durch \(\vec{n} = \begin{pmatrix} 0 & 0,6 & 0,8\end{pmatrix}^T \)  und \(\vec{l} = \begin{pmatrix} 1 & 2 & 3\end{pmatrix}^T\) und ich wähle noch ein \(\vec{u} = \begin{pmatrix} 0,5528 & -0,6667 & 0,5 \end{pmatrix}^T\). Daraus ergibt sich dann \(\vec{v} = \vec{n} \times \vec{u}\) und die Matrix A:

$$A = \begin{pmatrix} \vec{u} & \vec{v} \end{pmatrix} = \begin{pmatrix} 0,5528 & 0,8333 \\ -0,6667 & 0,4422\\ 0,5 & -0,3317 \end{pmatrix}$$ rechnet man nun mit Hilfe des Terms für \(r_{3D}\) die drei Eckpunkte des Dreiecks in 3D um, dann erhält man folgendes Bild:

Untitled4.png

(klick auf das Bild und rotiere die Szene mit der Maus)

Avatar von 48 k

Hi Werner

Danke für die ausführliche und verständliche Erklärung.

Habs nun verstanden und konnte mein Problem (in Matlab) lösen.

DANKE :)

0 Daumen

Hm,


Du hängst l als Richtungsvektor an Deine r

g(t):= r + t l

und berechnest den Schnittpunkt mit der Ebene

E: n ( X -l ) =0

alsö

n (g(t) - l) =0  ===> t ===> x' = g(t)

Edit:

Wenn Du einen Kreis quasi so hin drehen willst, dass er auf einer Ebene liegt - also nicht vezerrt. Dann wäre der Mittelpunkt mit l gegeben und den Radius r bliebe erhalten.

Du brauchst an l ansetzende Vektoren u ⊥ v aus E mit |u|=|v|=1 und hättest einen Kreis

k(t) := l + r (u sin(t) + v cos(t) )

Avatar von 21 k
0 Daumen

Hallo

 soweit ich verstehe, willst du einen durch (x,y) in der x-y Ebene gegebene Kurve (x(t),y(t)) in einer anderen Ebene haben. dann überleg dir dass das eigentlich x(t)*(1,0)+y(t)*(0,1) ist.

also musst du in der neuen Ebene 2 Orthonormale Vektoren nehmen, die diese aufspannen, ich nenne sie v1 und v2 und hast dann x(t)*v1+y(t)*v2

ist es das, was du suchst?

Gruß lul

Avatar von 106 k 🚀

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community