最近做了个图形学的大作业。一开始还不知道怎么把一个三维存储的图形呈现到平面内,一天内,确实只有一天内就完成了基本的投影和消隐算法,颇有成就感!
其实在投影上作了很大的简化,仅仅把图像投影到xy平面,可想有多简单了吧~取xy坐标值即可。
消隐的实现还是破费周折的,主要步骤是:计算平面上凸包,凸包上的点标记为边界点;与边界点相连的点,通过向量的计算确定是可见内点还是不可见内点;最后递归的把可见内点的相邻点标为可见点,不可见内点的相邻点标为不可见点;任意线段根据两端的端点类型(可见内点、不可见内点、边界点)标识线段是否可见。
消隐的代码如下:
效果颇为满意,上传个截图:

这是工程代码: