• 数学图形之莫比乌斯带(mobius)


    莫比乌斯带,又被译作:莫比斯环,梅比斯環或麦比乌斯带.是一种拓扑学结构,它只有一个面(表面),和一个边界.即它的正反两面在同一个曲面上,左右两个边在同一条曲线上.看它的名字很洋气,听它的特征很玄乎,实际上实现起来很容易,就是将一个纸条拧一下,然后粘起两头,所生成的带.公元1858年,德国数学家莫比乌斯(Mobius,1790~1868)发现:把一根纸条扭转180°后,两头再粘接起来做成的纸带圈,具有魔术般的性质。普通纸带具有两个面(即双侧曲面),一个正面,一个反面,两个面可以涂成不同的颜色;而这样的纸带只有一个面(即单侧曲面),一只小虫可以爬遍整个曲面而不必跨过它的边缘。这种纸带被称为“莫比乌斯带”。

    下面将展示几种莫比乌斯带的生成算法和切图,使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.

    (1)

    vertices = D1:160 D2:80
    u = from 0 to (2*PI) D1
    v = from -1 to 1 D2
    
    a = sin(u)
    b = cos(u)
    
    c = sin(u/2)
    d = cos(u/2)
    
    r = 5.0
    m = 0.2
    
    x = r*(1 + v*m*d)*b
    y = r*(1 + v*m*d)*a
    z = r*v*m*c

    (2)

    vertices = D1:160 D2:80
    u = from 0 to (2*PI) D1
    v = from -1 to 1 D2
    
    r = 10
    
    x = r*(2 + v*cos(u/2))*cos(u)
    y = r*(2 + v*cos(u/2))*sin(u)
    z = r*v*sin(u/2)

    (3)

    #http://www.mathcurve.com/surfaces/mobius/mobius.shtml
    
    vertices = D1:160 D2:80
    t = from 0 to (2*PI) D1
    r = from 0.6 to 1 D2
    
    s = sin(t)
    c = cos(t)
    
    x = [3*r*r*(r*r - 1) - 6*r*(1 + pow(r, 4))*c + (pow(r, 6) - 1)*(4*c*c - 1)]*s / (3*r*r*r)
    y = [4*(1 - pow(r, 6))*pow(c,3) - 3*r*(1 + pow(r, 4)) + 3*(r*r - 1)*(1 + pow(r, 4))*c + 6*r*(1 + pow(r, 4))*c*c] / (3*r*r*r) 
    z = 2*s*(r*r - 1)/r

    (4)

    #http://www.mathcurve.com/surfaces/mobiussurface/mobiussurface.shtml
    vertices = D1:100 D2:100
    u = from  (-2) to (2) D1
    v = from 0 to (PI*2) D2
    a = rand2(1, 10)
    x = (a + u*cos(v/2))*cos(v)
    z = (a + u*cos(v/2))*sin(v)
    y = u*sin(v/2)

    (5)

    将一个纸条拧一下,然后粘起两头会得到莫比乌斯带,那么拧上N圈呢?

    vertices = D1:160 D2:80
    u = from 0 to (2*PI) D1
    v = from -1 to 1 D2
    r = 10
    n = 3
    x = r*(8 + v*cos(n*u))*cos(u)
    z = r*(8 + v*cos(n*u))*sin(u)
    y = r*v*sin(u/2)

  • 相关阅读:
    Scala Partial Function从官方文档解析
    Scala Option 从官方DOC解析
    Scala Nothing 从官方DOC翻译
    从HTTP request的body中拿到JSON并反序列化为一个对象
    将一个大文件分割成若干个小文件,每个文件最多10万行
    java 可变长度参数列表
    java Class类的用法示例
    java String int转换的不同方法
    转载:大公司与小公司的比较
    java 判断5张牌的组成
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/3893785.html
Copyright © 2020-2023  润新知