- UID
- 4723
- 帖子
- 752
- 精华
- 5
- 积分
- 1778
|
曲面部分----寻找平衡点
关于曲面的表现,一般来讲有这样一些方式:
1.用网格表式空间曲面(网格法)
这种方法分为两类,一类不考虑明暗,一类考虑明暗,后一种方法当然立体感强,但是内存要求以高。使用什么方法,不能逞强,这要由算法说了算。
2.用填色去表现空间曲面(填色法),这种方法通常是取空间4点,形成空间平面四边形,然后对这个四边形迭代,在迭代前先上色,最后达到用色彩去表达曲面。
而色彩表达曲面有划分为两种,其一是,不考虑光照,其二是考虑光照。填色法去表达空间曲面,如果空间曲面具有凹多面体的特征(即曲面上两点之连线的至少有一点在其外部),填色法通常会导致失败。也就是说这种方法适合于具有凸性的曲面(即曲面上两点之连线还是在其内部),如马鞍面具有凹性,而旋转抛物面具有凸性,这种方法立体效果很好,但是同时局限性也大。
故,空间曲面的表达,一方面要考虑立体感,同时还要考虑内存,算法。要在这两者之间找到一种平衡。要找到这种平衡,就与算法密切相关。
在曲面的表达上,trunc(x),round(x)由它们去构建周期函数,跳跃函数是一种典型的技巧。所以研究曲面的表达,必须先去认识这两个函数构建的周期函数,跳跃函数。而这一点只要在几何画板里面绘制其图,则明显的可以看出这些。
整个曲面的迭代,都在按照同一模式迭代。也就是说迭代是依赖于一个周期数列a,和一个跳跃数列b。当数列a完成一个周期的递推后,数列b就增加一个跳跃度,然后开始新的一轮递推,就这样不断的重复,最后获得曲面。我这里个的曲面的一切例子都是按这个模式进行递推的。如果你有兴趣研究这些,请你务必先认识所用到的数列的周期性和跳跃度。一通百通,万变不离其中。
写两个咱们不太熟悉的变换:
1.错切(错位)变换:
x'=x+ay,y'=y,相当于把正方形沿x轴推成了一个平行四边形。
x'=x,y'=bx+y相当于把正方形沿y轴方向推诚了一个平行四边形。a,b可以用正切表式,这也是推导方法。
2.透视变换。
画家用的那种变换,射影几何中的射影变换可以定义为透视变换的积。设屏幕为xy平面,z轴指向你的眼睛。设透视中心(画家的眼睛位置)到屏幕的距离是d,设P(X,Y,Z),经透视变换后P的像点Q(X',Y',Z,)(画家画布上的那个点),则由相似三角形知道,X'/X=Y'/Y=d/(d+z),这便是透视变换的表达式。这是一个射影变换。按画家的讲法,主消失点最多为3个。学过美术的人这点都清楚。
===================================================
|
-
-
把图像变换到球上.gsp (161.9 KB)
-
-
曲面的一种做法nk-trunc(nk).gsp (152.73 KB)
-
-
演示描点工具:冻结点在xy平面.gsp (94.92 KB)
上面的彩色动画,演示的就是本工具的功能。1‘,2’是被冻结的点
|