[原创] Fill polygon demo code.
网络有时候真让人失望,有关多边形的填充算法,我几乎用百度翻遍了全部的中文网页,都找不到一个可用的多边形填充的代码。搜索到更多的都是一些残缺不全的资料、课件和一些破烂不堪的代码。有时候我在想,现在学校里面学过计算机图形学的学生和老师,究竟有几个能够真正的写出这个算法的代码呢。这样基础的东西,似乎都没有人真正的认真地去做过。
看来只能靠自己了,我从来都是做事认真的,这次就一定要写出一个完全正确,并且实用的多边形填充的代码出来。在仔细阅读了相关资料后,编写并调试出了这个程序。多边形的填充算法的确是一个比较复杂的算法,其中涉及到链表的操作,需要特别的细心,和反复的调试。在程序调试过程中,我还发现了目前许多教材和参考资料上的一些问题,其中最关键的是,在为每条扫描线生成新边表的时候,需要保证新边表中边结点按 dx 递增排列,否则必须对活性边表进行冒泡排序,这样会影响性能。
具体的不细说了,让人气愤而失望的是在网上竟然很难找到一份完全正确的参考资料和代码。哎,不提这个了,看我的代码吧,提供给大家参考,也算是填补了网络的一个空白。当然,也为那些在网上找代码应付作业、实验和考试的人提供方便了。
毕竟,这个问题比较复杂,我不能完全保证我的代码的正确性,因此大家如有发现bug,请告知,我将会努力改进。
filepolygon.rar
(33.76 KB)