随笔 - 373  文章 - 1  评论 - 771  阅读 - 137万

数学图形之单叶双曲面

    双曲线绕其对称轴旋转而生成的曲面即为双曲面。在数学里,双曲面是一种二次曲面。
    其中单叶双曲面可以用公式表达为:
    (x^2)/(a^2)+(y^2)/(b^2)-(z^2)/(c^2)=1 
     

    在现实中,许多发电厂的冷却塔结构是单叶双曲面形状。由于单叶双曲面是一种双重直纹曲面(ruled surface) ,它可以用直的钢梁建造。这样,会减少风的阻力.同时,也可以用最少的材料来维持结

构的完整.

    本文将展示几种生成单叶双曲面算法和切图.使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815

(1)

vertices = dimension1:72 dimension2:72

u = from 0 to (2*PI) dimension1
v = from (-4) to (4) dimension2

x = cosh(v)*cos(u)
z = cosh(v)*sin(u)
y = sinh(v)

(2)

单叶双曲面是一种直纹面(Ruled_surface),即它是由一族直线铺成的曲面。直线 x=1, y=t, z=2t 绕 z 轴旋转得到的单叶双曲面。下面是使用直线生成单叶双曲面的例子:

vertices = dimension1:72 dimension2:72

u = from 0 to (2*PI) dimension1
v = from (-10) to (10) dimension2

x = cos(u) - v*sin(u)
z = sin(u) + v*cos(u)
y = 2*v

(3)椭圆开口的随机单叶双曲面

复制代码
vertices = dimension1:72 dimension2:72

u = from 0 to (2*PI) dimension1
v = from (-5) to (5) dimension2

a = rand2(1, 5)
b = rand2(1, 5)
c = rand2(1, 5)

x = a*sqrt(1 + v*v)*cos(u)
z = b*sqrt(1 + v*v)*sin(u)
y = c*v
复制代码

(4)椭圆开口的随机单叶双曲面,另一种写法

复制代码
vertices = D1:100 D2:100
u = from 0 to (2*PI) D1
v = from (-PI*0.45) to (PI*0.45) D2
a
= rand2(1, 10) b = rand2(1, 10) c = rand2(1, 10)
x
= a*sec(v)*sin(u) y = b*tan(v) z = c*sec(v)*cos(u)
复制代码

(5)单叶双曲面的上半部分

 

复制代码
vertices = dimension1:72 dimension2:72
u = from (PI*0.05) to (PI*0.499) dimension1
v = from 0 to (2*PI) dimension2
a = rand2(1, 5)
b = rand2(1, 5)
c = rand2(1, 5)
x = a*cosh(u)*cos(v)
z = b*cosh(u)*sin(v)
y = c*sinh(u)
复制代码

 

(6)单叶双曲面的下半部分

 

复制代码
vertices = dimension1:72 dimension2:72
u = from (-PI*0.499) to (-PI*0.01) dimension1
v = from 0 to (2*PI) dimension2
a = rand2(1, 5)
b = rand2(1, 5)
c = rand2(1, 5)
x = a*cosh(u)*cos(v)
z = b*cosh(u)*sin(v)
y = c*sinh(u)
复制代码

 

(7)直线 随机旋转面

复制代码
vertices = 100
u = from -10 to 10

a = rand2(-5, 5)
b = rand2(-5, 5)

x = u
y = (x + a) + b

i = rand2(-2, 2)
j = rand2(-2, 2)
k = rand2(-2, 2)

surface_slices = 72
rotate = anchor[0, 0, 0], axis[i, j, k], angle[0, 2*PI]
复制代码

 

posted on   叶飞影  阅读(15899)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示