这是一个姓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

  1. #http://www.mathcurve.com/surfaces/boy/boy.shtml
  2. vertices = D1: D2:
  3. u = from to (PI) D1
  4. v = from to (PI) D2
  5. a = sin(u)
  6. b = cos(u)
  7. c = sin(v)
  8. d = cos(v)
  9. m = sqrt()
  10. k = rand2(0.1, 1.4)
  11. t = b/(m - k*sin(*u)*cos(*v))
  12. x = t*(b*cos(*v) + m*a*d)
  13. y = t*(b*sin(*v) - m*a*c)
  14. z = *t*b

boy surface 02

  1. #http://mathworld.wolfram.com/BoySurface.html
  2.  
  3. vertices = D1: D2:
  4. u = from (-PI/) to (PI/) D1
  5. v = from to PI D2
  6.  
  7. a = SQRT2*pow(cos(v), )
  8. d = - SQRT2*sin(*u)*sin(*v)
  9.  
  10. x = a*cos(*u) + cos(u)*sin(*v)
  11. y = a*sin(*u) - sin(u)*sin(*v)
  12. z = *pow(cos(v), )
  13.  
  14. x = x/d
  15. y = y/d
  16. z = z/d

boy surface 03

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

  1. #http://www.ipfw.edu/departments/coas/depts/math/coffman/steinersurface.html
  2. #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)^))
  3. #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)^))
  4. #z = (+r^*cos(t)^)^ / ((+r^*cos(t)^)*(+r^*cos(t)^+r^*sin(t)^) + sqrt()*r^*cos(t)*sin(t)*(-r^*cos(t)^))
  5.  
  6. vertices = D1: D2:
  7. t = from to (PI*) D1
  8. r = from to D2
  9. c = cos(t)
  10. s = sin(t)
  11. i = (r*c) ^
  12. j = (r*s) ^
  13. m = sqrt()
  14. a = (+i)*(+i+j)
  15. b = m*r*r*c*s*(-i)
  16. x = (+i)*(m-m*i+*r*s) / (*a + *b)
  17. y = *(+i)*(m*r*c - r*r*s*c) / (*a + *b)
  18. z = (+i)*(+i) / (a + b)

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

  1. 数学图形之Breather surface

    这是一种挺漂亮的曲面图形,可惜没有找到太多的相关解释. In differential equations, a breather surface is a mathematical surface ...

  2. 数学图形之Kuen Surface

    Kuen Surface应该又是一个以数学家名字命名的曲面.本文将展示几种Kuen Surface的生成算法和切图,其中有的是标准的,有的只是相似.使用自己定义语法的脚本代码生成数学图形.相关软件参见 ...

  3. 数学图形之SineSurface与粽子曲面

    SineSurface直译为正弦曲面.这有可能和你想象的正弦曲线不一样.如果把正弦曲线绕Y轴旋转,得到的该是正弦波曲面.这个曲面与上一节中的罗马曲面有些相似,那个是被捏过的正四面体,这个则是个被捏过正 ...

  4. 数学图形之罗马曲面(RomanSurface)

    罗马曲面,像是一个被捏扁的正四面体. 本文将展示罗马曲面的生成算法和切图,使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815 维 ...

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

    克莱因瓶是一种内外两面在同一个曲面上的图形. 在数学领域中,克莱因瓶(德语:Kleinsche Flasche)是指一种无定向性的平面,比如二维平面,就没有“内部”和“外部”之分.克莱因瓶最初的概念提 ...

  6. WHY数学图形可视化工具(开源)

    WHY数学图形可视化工具 软件下载地址:http://files.cnblogs.com/WhyEngine/WhyMathGraph.zip 源码下载地址: http://pan.baidu.com ...

  7. 数学图形(1.49)Nephroid曲线

    昨天IPhone6在国内发售了,我就顺手发布个关于肾的图形.Nephroid中文意思是肾形的.但是这种曲线它看上去却不像个肾,当你看到它时,你觉得它像什么就是什么吧. The name nephroi ...

  8. 数学图形(1.48)Cranioid curve头颅线

    这是一种形似乎头颅的曲线.这种曲线让我想起读研的时候,搞的医学图像三维可视化.那时的原始数据为脑部CT图像.而三维重建中有一种方式是面绘制,是将每一幅CT的颅骨轮廓提取出来,然后一层层地罗列在一起,生 ...

  9. 数学图形之贝塞尔(Bézier)曲面

    前面章节中讲了贝塞尔(Bézier)曲线,而贝塞尔曲面是对其多一个维度的扩展.其公式依然是曲线的公式: . 而之所以由曲线变成曲面,是将顶点横向连了再纵向连. 很多计算机图形学的教程都会有贝塞尔曲面的 ...

随机推荐

  1. jps出现process information unavailable的问题

    jps出现process information unavailable(当然我ps -aux了,确定该进程是存在的),网上查找了原因,我的理解是这样: 因为jps的进程信息是存储在/tmp/hspe ...

  2. Ionic入门六:按钮

    1.基本使用 按钮是移动app不可或缺的一部分,不同风格的app,需要的不同按钮的样式. 默认情况下,按钮显示样式为:display: inline-block. <button class=& ...

  3. JS日期、时间 格式化转换方法

    Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+& ...

  4. 实现linux和windows文件传输

    其实这个题目有点大,这里介绍的只是linux和windows文件传输中的一种,但是这种方法却非常实用,那就是:ZModem协议具体是linux命令是:rz和sz但是其实它们是两个非常方便的工具.   ...

  5. POJ - 1329 Circle Through Three Points 求圆

    Circle Through Three Points Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4112   Acce ...

  6. 1014 Waiting in Line (30)(30 point(s))

    problem Suppose a bank has N windows open for service. There is a yellow line in front of the window ...

  7. 用 Python 实现一个大数据搜索引擎

    搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器 ...

  8. Python匹配中文的正则表达式

    python 中的字符串: https://www.cnblogs.com/livingintruth/p/3282981.html # -*- coding: utf-8 -*- import re ...

  9. 【干货】PHP常见危险函数

    passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等). 危 ...

  10. [CC-MCHEF]MasterChef

    [CC-MCHEF]MasterChef 题目大意: \(n(n\le10^5)\)片花,第\(i\)片花的美观度为\(b_i(|b_i|\le10^9)\).总体美观度为各片花的美观度之和. 由于有 ...