Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Manox
Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 9. duben 2008, 14:56:49 Předmět: Ořezání libovolného 2D polygonu polygonem |
|
|
Ahoj,
už hodně dlouhou dobu řeším tenhle problém. Používal jsem Weiler Atherton algoritmus a všechno to vypadá dobře. Bohužel jen na papíře a přednáškách ze škol. Ovšem nikde jsem nenašel nějaké řešení pro speciální případy a s těmi mám obrovské problémy. Hlavně pokud leží nějaké vrcholy jednoho polygonu na druhém. Pak je to celé špatně. Udělal jsem nějaké vlastní úpravy, ale vždycke se najde nějaký případ co to nepokryje. Nevíte náhodou někdo o nějakém návodu, co funguje ve všech případech ? Díky |
|
Návrat nahoru |
|
|
Dr.Sid
Založen: 11. 04. 2008 Příspěvky: 9
|
Zaslal: 11. duben 2008, 20:57:38 Předmět: |
|
|
Napsal jsem celkem funckni system na obecne operace nad polygony ve 2D. Bohuzel je to komercni. Zadny specialni algoritmus to neni, spis rozbiti na mensi jednoduche ulohy.
- prevest polygony na 2 bodove usecky. Dale se pracuje jen s useckami. Plosna povaha vstupnich polygonu se momentalne ignoruje.
- narezat krizici se usecky. Osetruji se specialni pripady bod na bodu, bod na hrane, nebo obecny hrana vuci hrane.
- vytvoreni vsech vzniklych dilku pres projiti grafu usecek s prednosti nejlevejsiho vychodu. Napriklad kdyz prekryju do krize dav obdelniky, vznikne 5 neprekryvajicich se dilku, plus dil ktere predstavuje okoli. Kazda hrana se pouzije 2x, v kazdem smeru jednou (podle toho se pozna jestli se muze pouzit nebo ne).
- detekce ze kterych zdroju kazdy dilek vznikl (pres bod v plose, coz je celkem rychle)
- aplikace logickych pravidel pro vytrizeni dilu (pokud delam prunik, vezmu jen ty dily ktere lezi v obou zdrojich a podobne)
Je to relativne pomale, nektere kroky by jiste slo sloucit. Ale praveze ta uloha je tak slozita, a ma tolik moznych variant, je snazsi testovat a ladit jednotlive kroky. |
|
Návrat nahoru |
|
|
johnnash
Založen: 30. 07. 2007 Příspěvky: 80
|
|
Návrat nahoru |
|
|
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
Powered by phpBB © 2001, 2005 phpBB Group
Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna