数学图形之Boy surface

时间:2023-01-19 10:20:18

这是一个姓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: D2:
u = from to (PI) D1
v = from to (PI) D2
a = sin(u)
b = cos(u)
c = sin(v)
d = cos(v)
m = sqrt()
k = rand2(0.1, 1.4)
t = b/(m - k*sin(*u)*cos(*v))
x = t*(b*cos(*v) + m*a*d)
y = t*(b*sin(*v) - m*a*c)
z = *t*b

数学图形之Boy surface

boy surface 02

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

vertices = D1: D2:
u = from (-PI/) to (PI/) D1
v = from to PI D2 a = SQRT2*pow(cos(v), )
d = - SQRT2*sin(*u)*sin(*v) x = a*cos(*u) + cos(u)*sin(*v)
y = a*sin(*u) - sin(u)*sin(*v)
z = *pow(cos(v), ) x = x/d
y = y/d
z = z/d

数学图形之Boy surface

boy surface 03

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

#http://www.ipfw.edu/departments/coas/depts/math/coffman/steinersurface.html
#x = (+r^*cos(t)^)*(sqrt()-sqrt()*r^*cos(t)^+*r*sin(t)) / (*(+r^*cos(t)^)*(+r^*cos(t)^+r^*sin(t)^) + *sqrt()*r^*cos(t)*sin(t)*(-r^*cos(t)^))
#y = *(+r^*cos(t)^)*(sqrt()*r*cos(t) - r^*cos(t)*sin(t)) / (*(+r^*cos(t)^)*(+r^*cos(t)^+r^*sin(t)^) + *sqrt()*r^*cos(t)*sin(t)*(-r^*cos(t)^))
#z = (+r^*cos(t)^)^ / ((+r^*cos(t)^)*(+r^*cos(t)^+r^*sin(t)^) + sqrt()*r^*cos(t)*sin(t)*(-r^*cos(t)^)) vertices = D1: D2:
t = from to (PI*) D1
r = from to D2
c = cos(t)
s = sin(t)
i = (r*c) ^
j = (r*s) ^
m = sqrt()
a = (+i)*(+i+j)
b = m*r*r*c*s*(-i)
x = (+i)*(m-m*i+*r*s) / (*a + *b)
y = *(+i)*(m*r*c - r*r*s*c) / (*a + *b)
z = (+i)*(+i) / (a + b)

数学图形之Boy surface