平面曲面(网格)
geogebra吧
全部回复
仅看楼主
level 11
从最简单网格开始:
a = 曲面((u, v), u, 0, 10, v, 0, 10)
这是一个平面曲面,它有参数方程,用这个方法画网格,比用序列命令方便,一是可以直接定位曲面上的点,二是可以变形。
定位点,如:
N=a(2,6)
要变形的话,我们需要这个网格曲面更一般的表达式,先标出四角点吧:
A = (0, 0)
B=(10,0)
C=(10,10)
D=(0,10)
然后作直线AB、CD参数方程:
b = 曲线((1 - u) A + u B, u, 0, 1)
c = 曲线((1 - u) D + u C, u, 0, 1)
绘制曲面e,两曲线之间曲面绘制方法,替代曲面a:
k=10 (滑动条,控制网络密度,1到50,增量1)
e = 曲面((1 - u / k) b(v / k) + u / k c(v / k), v, 0, k, u, 0, k)
表面看,它与曲面a没区别,其实区别大了,它是同两条线段AB和BC生成的,移动ABCD四个点它是会变形的:
增加一些点,继续用曲线取代线段:
E = (3.06, 0.66)
F = (5.66, -0.62)
G = (8.16, 0.24)
H = (3.14, 10.56)
I = (5.58, 9.66)
J = (8.86, 10.3)
l1 = {A, E, F, G, B}
l2 = {D, H, I, J, C}
f = 样条曲线(l1, 3)
g = 样条曲线(l2, 3)
h = 曲面((1 - u / k) f(v / k) + u / k g(v / k), v, 0, k, u, 0, k)
再继续将直面纹变为曲面纹:
K = (10.44, 7.86)
L = (9.56, 5.46)
M = (10.6, 2.68)
l3 = {B, M, L, K, C}
i = 样条曲线(l3, 3)
d = 曲线((1 - u) B + u C, u, 0, 1)
j = 曲面((1 - u / k) f(v / k) + u / k g(v / k) + i(u / k) - d(u / k), v, 0, k, u, 0, k)
调整k,增大网格密度:
注:本贴与《导线为曲线的空间曲面》类似,但侧重点不同,这里主要是讲二维环境下网格曲面。
2021年01月24日 15点01分 1
level 11
我们直接可以用网格e作图形的透视变化,采用曲面上绘制曲线的方法,将直角坐标点映射到曲面上,调整四个角,就可以实现图形透视功能。
2021年01月24日 15点01分 2
level 1
请问u,v,k是单位矢量吗,我在三维上画网格但是没出现
2022年11月28日 02点11分 3
level 1
在不,作图有偿
2022年12月07日 10点12分 4
level 6
思路太厉害了
2023年04月13日 09点04分 5
1