多孔球面怎么画
geogebra吧
全部回复
仅看楼主
level 11
要在球面上打孔,一个孔还好办,两个孔心连线过球心也好办,画一条弧线旋转成曲面就行了(见《红灯笼》贴),但如下图,在一个球面上开六个圆孔,孔在三条轴线出入位置,这个怎么画?
很显然,它不可能简单地用一条弧线旋转而成,只能对球面进行拼接:
我们先在x=4平面上作一个半圆:
A = (4, -1, 0)
B = (4, 1, 0)
eq1: x = 4
c: 半圆(A, B, eq1)
然后对这个半圆以y轴为旋转轴作45度曲面,再以水平面对称一下:
a = 曲面(c, π / 4, y轴)
b = 对称(a, xOy平面)
把a、b两个图组合,以此为基础,先弄六个孔出来:
l0 = {a, b}
l1 = 旋转(l0, 0, y轴)
l2 = 旋转(l0, π / 2, y轴)
l3 = 旋转(l0, π, y轴)
l4 = 旋转(l0, 3π / 2, y轴)
l5 = {l1, l2, l3, l4}
l5' = 旋转(l5, π / 2, z轴)
然后想办法把球面补全,这里我们需要补全四个位置,只需要一个图形,然后旋转它就行了:
C = (1, 0.9, -4)
D = (1, 0.9, 4)
E = (4, 1, 0)
d: 外接圆弧(C, E, D)
这里我们用弧线旋转法生面曲面,弧线位置如下,坐标作了一些修正,减小缝隙:
e = 曲面(d, 62°, z轴)
e1 = 旋转(e, π / 2, z轴)
e2 = 旋转(e, π, z轴)
e3 = 旋转(e, 3π / 2, z轴)
生成曲面,旋转角度以遮挡圆孔为准。
2021年01月04日 03点01分 1
level 11
注:C、D点的确定是简化做法,做出来的球不标准,要求不高的情况下还行,精确做法是,弧线CED必须是大圆,即圆心应该在球心,因此需要重新计算C、D点位置,只是计算比较麻烦,省略了作简化处理。

C = (1, 0.3, -4)
D = (1, 0.3, 4)
E = (4, 1, 0)
时,这个球就比较光滑了:
2021年01月04日 04点01分 3
level 2
为什么我复制您的代码,做的显示不了六个空?是软件问题吗?
2021年05月18日 05点05分 4
level 11
这个真不知道,我用的是5.0。
2021年05月18日 06点05分 5
1