Ok, de titel zegt het al, ik wil dus een grote verzameling rechthoeken "sorteren".
Ik heb een hele grote verzameling van rechthoeken (ongeveer 40.000). Die hebben dus allemaal een coordinaat in het (x,y) vlak voor de linker boven- en rechter onderhoek. Die verzameling wil ik opdelen in kleinere verzamelingen van rechthoeken die bij elkaar liggen. Om dat te bewerkstellen heb ik een algoritme bedacht, waarvan ik redelijk overtuigd ben dat het goed zal werken, maar ik wil het jullie toch ook even voorleggen, misschien kunnen jullie mij voorzien van nuttige kritiek of mij attenderen op een betere methode.
Wat ik nu doe gaat als volgt:
Ik bepaal voor ieder rechthoek het middelpunt. Dan hou ik per rechthoek dus 1 (x,y)-coordinaat over. Dan bereken ik voor dat punt met pythagoras sqrt(x^2 + y^2) de afstand tot de oorsprong (0,0). En vervolgens sorteer ik de rechthoeken oplopend op afstand tot de oorsprong.
Dit lijkt me de makkelijkste methode en ik kan zo gauw geen andere verzinnen. Wat denken jullie?
(o ja, ik bepaal niet eerst voor iedere rechthoek het middelpunt, dit wordt gewoon 'on the fly' tijdens het sorteren gedaan om twee rechthoeken te vergelijken)
/edit
mijn coordinatenstelsel beperkt zich tot de positieve x- en de positieve y-as, anders zou dit natuurlijk al helemaal niet werken)
Ik heb een hele grote verzameling van rechthoeken (ongeveer 40.000). Die hebben dus allemaal een coordinaat in het (x,y) vlak voor de linker boven- en rechter onderhoek. Die verzameling wil ik opdelen in kleinere verzamelingen van rechthoeken die bij elkaar liggen. Om dat te bewerkstellen heb ik een algoritme bedacht, waarvan ik redelijk overtuigd ben dat het goed zal werken, maar ik wil het jullie toch ook even voorleggen, misschien kunnen jullie mij voorzien van nuttige kritiek of mij attenderen op een betere methode.
Wat ik nu doe gaat als volgt:
Ik bepaal voor ieder rechthoek het middelpunt. Dan hou ik per rechthoek dus 1 (x,y)-coordinaat over. Dan bereken ik voor dat punt met pythagoras sqrt(x^2 + y^2) de afstand tot de oorsprong (0,0). En vervolgens sorteer ik de rechthoeken oplopend op afstand tot de oorsprong.
Dit lijkt me de makkelijkste methode en ik kan zo gauw geen andere verzinnen. Wat denken jullie?
(o ja, ik bepaal niet eerst voor iedere rechthoek het middelpunt, dit wordt gewoon 'on the fly' tijdens het sorteren gedaan om twee rechthoeken te vergelijken)
/edit
mijn coordinatenstelsel beperkt zich tot de positieve x- en de positieve y-as, anders zou dit natuurlijk al helemaal niet werken)
[ Voor 7% gewijzigd door Verwijderd op 03-04-2003 04:00 ]