normalen in coffee

wayne42

Mitglied
Hallo Leute,

ich hab mal ne kleine Frage. Kann man sich über Coffee in Cinema die Normalen der Polygone eines Objekts ausgeben lassen?

Vielen Dank schonmal für eure Mühe... ich bin aus der Doku noch nich wirklich schlau geworden.
 
Moin.

Heißt also, dass die Normale eines Polygons = vcross(a,c)+vcross(b,d) ?
Da bekommt man nur sehr komische Ergebnissse... wandelt man zum Beispiel einen Cube in ein Polygon um, so hat er zwar 6 Normalen, aber 4 zeigen davon in die gleiche Richtung.
Brett vorm Kopf?
 
Hi!

Bzgl. vcross bzw. Kreuzprodukt: http://de.wikipedia.org/wiki/Kreuzprodukt :)

D.h. vcross erhält die beiden Vektoren, die die Fläche aufspannen ... also etwa:
Vektor a = - P1 + P2 (Vektor von P1 zu P2 des Polygons)
Vektor b = - P3 + P4 (Vektor von P3 zu P4 des Polygons)
-> Vektor n = vcross(a,b) = vcross(P2-P1, P4-P3) ...
... zumindest so ähnlich sollte es sein ;)

Liebe Grüße,
Mark.
 
Hi!

Aufwachen! ;)
Nur mal als möglicher Ansatz:
Code:
main(doc,op)
{
    if (!instanceof(op,PointObject)) return FALSE;

    println("Normalen von " + op->GetName());
    var i;
    for(i=0; i< op->GetPolygonCount(); i++) {
        var poly    = op->GetPolygon(i);
        var norm    = vnorm(
            vcross(
                -op->GetPoint(poly->a) + op->GetPoint(poly->c),
                -op->GetPoint(poly->b) + op->GetPoint(poly->d)
            )
        );
        println("Polygon "+ tostring(i) + " = ", norm);
    }
}
Liebe Grüße,
Mark.
 
Zurück