以下是这段时间所有的计算机图形学实验,做了整理和汇总。方便自己再次查看,也希望能给别人提供一点思路。
都贴上了完整代码,代码里也有详细的注释,但是并没有写算法的具体思路,可能其中有一些提及了我在做实验时参考的别人的思路
另外需要说明的是,里面的代码大多数是在别人代码的基础上进行修改的,感谢分享的人
环境:
vs2019,OpenGL的库(可以搜索如何用vs使用OpenGL的库,可以使用vs自带的插件或者其他方法,很方便)
用 DDA、Bresenham、中点画线法 三种方法实现直线绘制,并和鼠标点击事件进行交互。
三种绘制直线的算法
实现绘制圆的中点算法和Bresenham算法,并和鼠标进行交互。
圆的中点算法和Bresenham算法
实现绘制椭圆的中点算法,并和鼠标进行交互。
绘制椭圆的中点算法
实现多边形种子填充算法,分为四连通填充和扫描线填充,(分别由队列和栈实现的)并和鼠标进行交互。
多边形种子填充算法
创建NET和AET,进行多边形的填充
扫描线多边形填充算法
实现Cohen-Sutherland 直线裁剪算法,并和鼠标进行交互。
Cohen-Sutherland 直线裁剪算法
利用SutherlandHodgmanClip 多边形裁剪算法,实现多边形的裁剪,并和鼠标进行交互。
并且对该算法进行了改进,使之同样适用于凹多边形。
SutherlandHodgmanClip 多边形裁剪算法及其改进