Eine Gerade via Parameterdarstellung
-
Hallo,
ich bräuchte eine Möglichkeit, einen Punkt auf einer Gerade zu zeichen, an einer beliebigen Stelle, veränderbar via Parameter t.
Afaik sollte das so aussehen :
Ortsvektor P0 + t*Ortsvektor P1 = Pz (0<=t<=1)
nun weiß ich aber nicht, wie ich das in Visual Studios umsetzen kann.
Ein Array Data mit den Punkten liegt vor :
glVertex3fv((&(data[10][0] + t*data[0][0])));
so scheint es nicht zu gehen
vllt könnt ihr mit helfen !
Lg
-
benutz glVertex3f (ohne v) und uebergebe dort die 3 komponenten einzeln, dann kannst du pro komponente (also x y und z) mit deiner formel ohne probleme die position ausrechnen.
-
Wenn der Typ von "data[0]" eine Vektor-Klasse ist, dann kannst du vermutlich einfach sowas schreiben:
Vector3F p = data[10] + t * data[0]; glVertex3fv(&p[0]); // angenommen Vector3F hat nen operator[], und die Elemente liegen schön brav hintereinander
Und natürlich muss es
P = P0 + t * (P1 - P0)
heissen, wennP1
auch ein Ortsvektor ist.
-
Danke für die Antworten !
Leider bekomme ich so die Fehlermeldung :
error C2297: '*': Ungültig, da der rechte Operand vom Typ 'GLfloat [3]' ist
Und mit dem Ortsvektor, hast du natürlich recht
lg
-
hustbaer schrieb:
Wenn der Typ von "data[0]" eine Vektor-Klasse ist,...
du hast zuviel vertrauen in die welt
glVertex3f(data[10][0] + t*data[0][0],data[10][1] + t*data[0][1],data[10][2] + t*data[0][2]);