导线为曲线的空间曲面
geogebra吧
全部回复
仅看楼主
level 11
我们讨论过两空间曲线之间的曲面问题,我们采用的是导线为直线,如下图:
(点略去)
l1 = {A, B, C, D}
a = 样条曲线(l1, 3)
l2 = {E, F, G, H}
b = 样条曲线(l2, 3)
c = 曲面((1 - u) a(t) + u b(t), t, 0, 1, u, 0, 1)
曲线a移动到b形成的曲面,两端是直线,它的导线是线性的,如果我们需要在形成曲面的同时,母线(a)沿某一曲线运动形成曲面呢?
我们设一曲线如下:
l3 = {D, I, J, H}
e = 样条曲线(l3, 3)
同时给出这条曲线临近的线段DH,作为参照线:
d = 曲线((1 - u) D + u H, u, 0, 1)
曲线a到b的过程中,我们将a上的点以参照线为起点平移到曲线e上,就可以实现导线为曲线的曲面形成,方程如下:
f = 曲面((1 - u) a(t) + u b(t) + e(u) - d(u), t, 0, 1, u, 0, 1)
当然,样条曲面是采用双样条矩阵计算得到,计算量非常大,我们这里是作了简化处理,只处理了导线为一条曲线的情况,更多导线用此法就不行了。
2021年01月18日 01点01分 1
level 11
补充:我们画的曲面线径不为0,且填充色有透明度的情况下,能看到组成曲面的网格,我们姑且把这些线也叫经纬线吧。这些线只能看不能用,做着色、单独取一条或者全部取出来组成列表。有没有办法取出来呢?答案是肯定的。
由于我们形成的曲面有参数表达式,这个就好办了,如我们要在上面取一点,如f(0.5,0.5),则这个曲面相当于一个坐标系了,其两个参数就是其坐标值,因此:
K = f(0.5, 0.5)
既然把这曲面看成坐标系,能取其中一条曲线吗?当然可以,如下:
g = 曲线(f(0, v), v, 0, 1)
那取其全部网格线也就可行了:
l4 = 序列(曲线(f(i, v), v, 0, 1), i, 0, 1, 1 / 12)
l5 = 序列(曲线(f(v, i), v, 0, 1), i, 0, 1, 1 / 12)
网格全部交点:
l6 = 序列(序列(f(u, v), u, 0, 1, 1 / 12), v, 0, 1, 1 / 12)
2021年01月18日 04点01分 2
level 11
具体应用:
2021年01月18日 08点01分 3
1