摘要:
问题来自于《计算机图形学》p171。问题描述如下: 在考虑这个问题的解决方法之前先看一下如何求一条光线的反射光线: 我们规定向量a和n已经被归一化,那么r-a,如图4.13(b),r-a = 2 cos(theta) * n。cos(theta)即向量a和n的点积。故有 r=a-2(a*n)n 反射 阅读全文
摘要:
恩..接着就是Cyrus-Beck算法。这个算法比之前的Cohen-Sutherland算法厉害,处理任意凸多边形对线段的裁剪。自然,这个算法也比Cohen-Sutherland算法复杂不少。 首先,是线段与多边形相交的情况: 我们把定义向量c = (C - A),而线段AC是射线A + ct的一部 阅读全文
摘要:
还是其几天写的,这是最简单的一个直线裁剪算法了吧,它针对的是一个矩形和一条线段。并且还是边与坐标轴平行的矩形。 在实际应用上应该会经常用于屏幕对各种线段的裁剪吧。算法很简单效率也很高。 首先是算法的两种特例:平凡接受和平凡拒绝。 (图片来自《计算机图形学(OpenGL)》第三版) 当线段的两个端点都 阅读全文
摘要:
其实以前就写过一个迷宫的程序和DFS遍历,不过弄丢了,前几天闲就重写了一下。欢迎交流和拍砖。有很多不足的地方也希望大家多指正。 迷宫生成的算法来自《计算机图形学》,也就是这本书: 生成迷宫的算法描述如下: 由于表示墙使用了up_wall和left_wall两个矩阵,所以格子的数量要比能显示出来的多一 阅读全文