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]