数学图形之Boy surface

这是一个姓Boy的人发现的,所以取名为Boy surface.该图形与罗马图形有点相似,都是三分的图形.它甚至可以说是由罗马曲面变化而成的.

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

In geometry, Boy‘s surface is an immersion of the real projective plane in 3-dimensional space found by Werner Boy in 1901 (he discovered it on assignment from David Hilbert to prove that the projective plane could not be immersed in 3-space). Unlike the Roman surface and the cross-cap, it has no singularities (i.e. pinch-points), but it does self-intersect.

boy surface 01

#http://www.mathcurve.com/surfaces/boy/boy.shtml
vertices = D1:100 D2:100
u = from 0 to (PI) D1
v = from 0 to (PI) D2
a = sin(u)
b = cos(u)
c = sin(v)
d = cos(v)
m = sqrt(2)
k = rand2(0.1, 1.4)
t = b/(m - k*sin(2*u)*cos(3*v))
x = t*(b*cos(2*v) + m*a*d)
y = t*(b*sin(2*v) - m*a*c)
z = 3*t*b

boy surface 02

#http://mathworld.wolfram.com/BoySurface.html

vertices = D1:100 D2:100
u = from (-PI/2) to (PI/2) D1
v = from 0 to PI D2

a = SQRT2*pow(cos(v), 2)
d = 2 - SQRT2*sin(3*u)*sin(2*v)

x = a*cos(2*u) + cos(u)*sin(2*v)
y = a*sin(2*u) - sin(u)*sin(2*v)
z = 3*pow(cos(v), 2)

x = x/d
y = y/d
z = z/d

boy surface 03

我在这套公式上花费的时间最多,因为它最复杂,而且也不完美.它的曲面没能闭合.我研究了很久才发现,当r取无穷大时,该曲面才会闭合.

#http://www.ipfw.edu/departments/coas/depts/math/coffman/steinersurface.html
#x = (1+r^2*cos(t)^2)*(sqrt(2)-sqrt(2)*r^2*cos(t)^2+2*r*sin(t)) / (3*(1+r^2*cos(t)^2)*(1+r^2*cos(t)^2+r^2*sin(t)^2) + 3*sqrt(2)*r^2*cos(t)*sin(t)*(3-r^2*cos(t)^2))
#y = 2*(1+r^2*cos(t)^2)*(sqrt(2)*r*cos(t) - r^2*cos(t)*sin(t)) /  (3*(1+r^2*cos(t)^2)*(1+r^2*cos(t)^2+r^2*sin(t)^2) + 3*sqrt(2)*r^2*cos(t)*sin(t)*(3-r^2*cos(t)^2))
#z = (1+r^2*cos(t)^2)^2 / ((1+r^2*cos(t)^2)*(1+r^2*cos(t)^2+r^2*sin(t)^2) + sqrt(2)*r^2*cos(t)*sin(t)*(3-r^2*cos(t)^2))

vertices = D1:100 D2:100
t = from 0 to (PI*2) D1
r = from 0 to 10 D2
c = cos(t)
s = sin(t)
i = (r*c) ^ 2
j = (r*s) ^ 2
m = sqrt(2)
a = (1+i)*(1+i+j)
b = m*r*r*c*s*(3-i)
x = (1+i)*(m-m*i+2*r*s) / (3*a + 3*b)
y = 2*(1+i)*(m*r*c - r*r*s*c) / (3*a + 3*b)
z = (1+i)*(1+i) / (a + b)

数学图形之Boy surface

时间: 2024-12-07 15:11:22

数学图形之Boy surface的相关文章

数学图形之Kuen Surface

Kuen Surface应该又是一个以数学家名字命名的曲面.本文将展示几种Kuen Surface的生成算法和切图,其中有的是标准的,有的只是相似.使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815 公式1 #http://jalape.no/math/kuentxt vertices = D1:100 D2:100 u = from (-4.5) to (4.5) D1 v = from (PI*0.01) to (PI*

数学图形之Breather surface

这是一种挺漂亮的曲面图形,可惜没有找到太多的相关解释. In differential equations, a breather surface is a mathematical surface relating to breathers. 其数学公式很复杂,参数方程为: where 0 < a < 1. 维基的相关网址为:http://en.wikipedia.org/wiki/Breather_surface 使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该

数学图形之SineSurface与粽子曲面

SineSurface直译为正弦曲面.这有可能和你想象的正弦曲线不一样.如果把正弦曲线绕Y轴旋转,得到的该是正弦波曲面.这个曲面与上一节中的罗马曲面有些相似,那个是被捏过的正四面体,这个则是个被捏过正方体. 本文将展示SineSurface与粽子曲面的生成算法和切图,使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815 这是从http://mathworld.wolfram.com/SineSurface.html上找到的一种

数学图形之克莱因瓶(klein bottle)

克莱因瓶是一种内外两面在同一个曲面上的图形. 在数学领域中,克莱因瓶(德语:Kleinsche Flasche)是指一种无定向性的平面,比如二维平面,就没有“内部”和“外部”之分.克莱因瓶最初的概念提出是由德国数学家菲利克斯·克莱因提出的.克莱因瓶和我上一篇讲的莫比乌斯带非常相像.一个是内外两面是在同一个曲面上,另一个是里外两面在同一个曲面上. 克莱因瓶的形状是,一个瓶子底部有一个洞,现在延长瓶子的颈部,并且扭曲地进入瓶子内部,然后和底部的洞相连接. 下面将展示几种莫比乌斯带的生成算法和切图,使

数学图形之心形

明天是七夕,中国的情人节,为了应节,这一篇提供几个心形曲面的算法. 说到心形,我想到一个笑话,有个女老师在黑板上画了个心形图案,问学生加:"这是什么?"学生们回答:"屁股."老师气哭了,去找校长理论.校长来了就批评学生:"你们怎么又的把老师给气哭了呢?"然后看到了黑板上的图案继续说道:"你们也太调皮了,怎么还在黑板上画了个屁股呢!"好笑吧,其实我也有类似的经历,有人曾对我说:"你怎么拿个屁股做博客园的头像呢?&quo

数学图形之单叶双曲面

双曲线绕其对称轴旋转而生成的曲面即为双曲面.在数学里,双曲面是一种二次曲面.    其中单叶双曲面可以用公式表达为: (x^2)/(a^2)+(y^2)/(b^2)-(z^2)/(c^2)=1 在现实中,许多发电厂的冷却塔结构是单叶双曲面形状.由于单叶双曲面是一种双重直纹曲面(ruled surface) ,它可以用直的钢梁建造.这样,会减少风的阻力.同时,也可以用最少的材料来维持结 构的完整. 本文将展示几种生成单叶双曲面算法和切图.使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图

数学图形之锥体

这一节将为你展示如何生成锥体面,以及各种与锥体相关的图形,有金字塔,五角星,圆锥,冰淇淋, 正劈锥体等. 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形. 我之前写过生成圆锥的C++程序,代码发布在圆锥(Cone)图形的生成算法. (1)圆锥面 vertices = dimension1:72 dimension2:72 u = from 0 to (2*PI) dimension1 v = from (-5) to (5) dimension2 x = v*cos(u

数学图形(2.1)三叶结

终于将二维图形发完了,从这一节开始,步入3D的图形世界. 以下是维基中对三叶结的介绍: 在纽结理论中,三叶结(trefoil knot)是一种最简单的非平凡纽结.可以用反手结连接两个末端而达成.它是唯一一种有3个交叉的纽结.它也可以描述为环面纽结.由于三叶结的结构极为简单,它是研究纽结理论很重要的基本案例,在拓扑学.几何学.物理学.化学领域,有广泛的用途. 三叶结可以由以下的参数方程确定: 三叶结也可以看作环面纽结.对应的参数方程为: 针对如上两种数学公式对应的脚本代码如下: #http://z

数学图形(2.2)N叶结

上一节讲的三叶结,举一反三,由三可到无穷,这一节讲N叶结 再次看下三叶结的公式: x = sin(t) + 2*sin(2*t)y = cos(t) - 2*cos(2*t) 将其改为: x = sin(t) + 2*sin((n-1)*t)y = cos(t) - 2*cos((n-1)*t) 就变成了N叶结了,如此简单. N叶结: vertices = 12000 t = from 0 to (20*PI) n = rand_int2(2, 24) x = sin(t) + 2*sin(n*