Auf Thema antworten

Die Geschwindigkeit entlang a und b muss man noch angleichen um von beiden Seiten gleichzeitig im Punkt C zu landen.

[code]void triangleScanVerts ( Vektor3D A, Vektor3D B, Vektor3D C, float step ){

     Vektor3D DIR_c = B.sub(A); // Richtung entlang Seite c

     Vektor3D DIR_b = C.sub(A); // Richtung entlang Seite b

     Vektor3D DIR_a = C.sub(B); // Richtung entlang Seite a

     DIR_a = DIR_a.norm().mul( step * DIR_a.length() / DIR_b.lengt() ); // Geschwindigkeit entlang a und b parallel halten

     DIR_c = DIR_c.norm().mul(step);

     DIR_b = DIR_b.norm().mul(step);

   

     Vektor3D START = A;

     Vektor3D END = B;


     while( !START.isInEpsilonOf( C, step ) ){

         GO = START;

         while( !GO.isInEpsilonOf(END, step ){

             // bewege GO in Richtung END entlang Seite c

             GO = GO.add( DIR_c );


             .. rufe gewünschte Operation für den Punkt GO auf

         }

         // bewege START in Richtung C entlang Seite b

         START = START.add( DIR_b );


         // bewege END in Richtung C entlang Seite a

         END = END.add( DIR_a );

     }

}[/code]



Oben