Wie diese 3 Anweisung in Länge (1D) funktionieren, ist bekannt.
Nun zur meiner Frage, wie arbeiten diese in der 2D-Ebene mit Vektoren. Als einfaches Beispiel wollte ich mal "min" probieren. Dabei dachte ich, ich überprüfe die beiden Vektoren auf ihre Länge, und je nachdem, welcher Vektor länger ist, den nehme ich als Ergebnis. Aber da ging mir durch den Kopf. Wen ein Vektor (-3, -3) und der andere (2, 2) hat., welcher müsst bei min raus kommen ? Der mit -3 ist wohl länger als der mit 2, aber er zeigt in minus. Oder überprüft man jede Achse einzeln ?
Code:
function Vec2Len(v: TVector2f): GLfloat;
begin
Result :=sqrt(sqr(v[0])+sqr(v[1]));
end;
// Variante 1
functionmin(const a, b: TVector2f): TVector2f;inline;
begin
if Vec2Len(a) < Vec2Len(b)thenbegin
Result := a;
endelsebegin
Result := b;
end;
end;
// Variante 2
function min2(const a, b: TVector2f): TVector2f;inline;
begin
Result[0]:=min(a[0], b[0]);
Result[1]:=min(a[1], b[1]);
end;
Welche Variante ist die richtige ?
Gibt es für GLSL ein Auflösung, wie die Formel aussieht ?
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.