C#散点凸包算法可视化
散点图的可视化,配上格雷厄姆扫描的凸包演示,蛮适合拿来当教学案例或者算法练手用的。你可以点一下“生成散点”,马上在窗口里看到一堆小黑点,一键“计算凸包”,红色的边就画出来了,看着还挺直观的。
起始点选的是 y 坐标最小的那个,如果有多个就比 x。这个点是整个凸包的起点,必须挑得精准。就是经典套路——按极角排序,顺时针/逆时针一判断,栈一顿操作,的点就拼成一个完整的多边形。
整个过程用的是C#,界面是Windows Forms搭的。绘图就靠Graphics
类里的FillEllipse
和DrawLine
,其实不复杂。是那种动态演示算法的过程,看点一个个推进,蛮有意思的。你也可以改改代码试试别的点集,看算法表现。
如果你正在搞算法可视化或者想做点C#图形界面的小项目,这个资源还不错,代码不绕,逻辑清楚,挺适合动手练练。
下载地址
用户评论