Es sind nicht speziell Rechtecke + Rechte Dreiecke, aber ein guter Forschungspunkt für die Untersuchung von tesselierenden Polygonen ist Voronoi Diagrams and Delaunay Triangulations und here und here.
In der Tat, wenn "gerade Dreiecke" gut genug ist, sind diese garantiert, für Sie zu triangulieren, und Sie können jedes Dreieck in zwei richtige Dreiecke teilen, wenn Sie diese wirklich brauchen. Oder Sie können "Spitzen" von Dreiecken abhacken, um mehr rechte Dreiecke und einige Rechtecke aus den rechten Dreiecken zu machen.
Sie können auch versuchen, ear-clipping, entweder durch radiales Sweeping, wenn Sie wissen, dass Sie ziemlich regelmäßige Polygone haben, oder durch "Clipping der größten konvexen Chunk" aus. Dann teilen Sie jedes verbleibende Dreieck in zwei, um rechte Dreiecke zu erstellen.
polygon http://static.eruciform.com/images/polygon.png
Sie könnten versuchen, weniger Pausen durch Kehren einen Weg zu machen und dann das andere ein Trapez zu machen und teilen Sie es anders, aber Sie dann einen Scheck tun müssen, um sicherzustellen, dass Ihre Sweep-line hasn Ich habe nicht irgendwo eine andere Linie überquert. Du kannst immer mit dem Ohr schneiden, sogar mit etwas, das praktisch fraktal ist.
Dies schafft jedoch manchmal sehr schlanke Dreiecke. Sie können Heuristiken wie "Nimm den größten" ausführen, anstatt kontinuierlich entlang der Kante zu schneiden, aber das dauert länger und nähert sich O (n^2). Delaunay/Vornoi wird es in den meisten Fällen schneller machen, mit weniger schlanken Dreiecken.
ist dies für eine Algorithmen-Klasse oder einer Klasse Computergrafik? – eruciform
Es ist nicht für eine Klasse. Ich bin nicht in der Schule. – Steve
In der Tat könnte ich bereit sein, jemandem, der die Frage gut beantworten kann, ein Stellenangebot zu geben, wenn sie für das iPhone, Mac-Desktop und .net programmieren können. ;) – Steve