Vektor Geometrie Problem (.NET)

Hallo,

Ich habe folgende Ausgangslage:

Ich zeichne eine 2D Figur (GDI+ , .NET), habe für jede Linie jeweils den Vektor.

Ein Speziallfall ist nun, dass ich (bei gewissen Elementen) eine Senkrechte mit Länge "r" auf die Spitze des vorhergehenden Vektor zeichnen muss.

Mathematischer Sachverhalt:
Code:
  v1 = [x1;y1]   // Gegebener Vorgänger Vektor
|v2|= r            // Gegebener Betrag (Länge) von v2
  v2 = [x2;y2]   // Gesuchter Vektor 2 (der senkrecht auf v1 steht)

// Ich habe nun folgende Zwei Gleichungen aufstellen können:

DOTPRODUCT(v1,v2) = 0
|v2|  = r

//---------------------------
// Dotproduct:
(x1 * x2) + (y1 * y2) = 0
//Betrag von v2
sqrt(x2^2 y2^2) = r
Ich rotiere - und weis das die Lösung auf der Hand liegt... nur solange sie auf der eigenen Handliegt kann ich sie nicht greifen... :D
 
Nachdem du dich im zweidimensionalen Raum befindest, kannst du das Kreuzprodukt anwenden, welches in diesem Fall ein unärer Operator ist:
http://members.aon.at/pir/skripten/06_vektoren.htm#D
Code:
v1 = (x,y)
v2 = (-y,x)
Damit hast du schon einmal einen Vektor, der normal auf dem ersten steht. Auf die Länger r bringst du das noch, indem du zuerst normierst und dann mit r multiplizierst:
Code:
v2 * r / |v2|
mfg benediktibk
 
Zurück
Oben