Non è specificamente rettangoli + triangoli rettangoli, ma un buon punto di ricerca per esaminare i poligoni di tesselating è Voronoi Diagrams and Delaunay Triangulations e here e here.
Infatti, se "i triangoli giusti" sono abbastanza buoni, questi sono garantiti per triangolare per te, e puoi sempre dividere qualsiasi triangolo in due triangoli rettangoli, se davvero ne hai bisogno. Oppure puoi tagliare "punte" di triangoli per rendere più triangoli rettangoli e alcuni rettangoli dai triangoli rettangoli.
Puoi anche provare ear-clipping, spazzando radialmente, se sai di avere poligoni abbastanza regolari, o "ritaglia il pezzo più grande convesso". Quindi, dividi ciascun triangolo rimanente in due per creare triangoli rettangoli.
polygon http://static.eruciform.com/images/polygon.png
Si potrebbe provare a fare meno pause da spazzare in un modo e poi l'altro per fare un trapezio e dividere in modo diverso, ma è quindi necessario fare un controllo per assicurarsi che il vostro spazzata-line hasn ho attraversato un'altra linea da qualche parte. Puoi sempre agganciare le orecchie, anche con qualcosa di praticamente frattale.
Tuttavia, questo a volte crea triangoli molto sottili. È possibile eseguire l'euristica, ad esempio "prendi il più grande", invece di tagliare continuamente lungo il bordo, ma ciò richiede più tempo, avvicinandosi a O (n^2). Delaunay/Vornoi lo farà più rapidamente nella maggior parte dei casi, con triangoli meno sottili.
è questo per una classe di algoritmi o di una classe di computer grafica? – eruciform
Non è per una classe. Non sono a scuola. – Steve
In effetti, potrei essere disposto a dare a qualcuno che può rispondere alla domanda una buona offerta di lavoro se possono programmare per iPhone, Mac desktop e .net. ;) – Steve