zoukankan      html  css  js  c++  java
  • 数学图形(2.6)Satellit curve

    这曲线有点像鼓,绕在球上两头是开口的.

    #http://www.mathcurve.com/courbes3d/satellite/satellite.shtml
    
    vertices = 12000
    
    t = from 0 to (40*PI)
    
    r = 10
    k = rand2(0.5, 10)
    a = rand2(PI*0.1, PI*1.9)
     
    x = r*(cos(a)*cos(t)*cos(k*t) - sin(t)*sin(k*t))
    y = r*(cos(a)*sin(t)*cos(k*t) + cos(t)*sin(k*t))
    z = r*sin(a)*cos(k*t)

    (1)当上面代码中的k == 1时

    #http://www.mathcurve.com/courbes3d/satellite/satellite.shtml
    vertices = 12000
    t = from 0 to (2*PI)
    r = 10
    k = 1
    a = rand2(PI*0.1, PI*1.9)
     
    x = r*(cos(a)*cos(t)*cos(k*t) - sin(t)*sin(k*t))
    y = r*(cos(a)*sin(t)*cos(k*t) + cos(t)*sin(k*t))
    z = r*sin(a)*cos(k*t)

    生成一个帖在球上的伯努利双纽线

    再将代码中的a = rand2(PI*0.1, PI*1.9)改为一个输入维度数据

    vertices = D1:360 D2:100
    
    u = from 0 to (PI) D1
    v = from 0 to (2*PI) D2
    
    r = 10
    k = 1
     
    x = r*(cos(v)*cos(u)*cos(k*u) - sin(u)*sin(k*u))
    y = r*(cos(v)*sin(u)*cos(k*u) + cos(u)*sin(k*u))
    z = r*sin(v)*cos(k*t)

    这时生成一个曲面:

    在这个曲面上,可以显示任意一个a值下生成的曲线.

    (2)当上面代码中的k == 1时

    2000
    t = from 0 to (4*PI)
    r = 10
    k = 0.5
    a = rand2(PI*0.1, PI*1.9)
    x = r*(cos(a)*cos(t)*cos(k*t) - sin(t)*sin(k*t))
    y = r*(cos(a)*sin(t)*cos(k*t) + cos(t)*sin(k*t))
    z = r*sin(a)*cos(k*t)

    再将代码中的a = rand2(PI*0.1, PI*1.9)改为一个输入维度数据

    vertices = D1:360 D2:100
    
    u = from 0 to (2*PI) D1
    v = from 0 to (2*PI) D2
    
    r = 10
    k = 0.5
     
    x = r*(cos(v)*cos(u)*cos(k*u) - sin(u)*sin(k*u))
    y = r*(cos(v)*sin(u)*cos(k*u) + cos(u)*sin(k*u))
    z = r*sin(v)*cos(k*t)

    这时生成一个曲面:

  • 相关阅读:
    初级Linux学习指南
    2016/09/29 SQL中的join
    2016/09/27 Hadoop Yarn
    2016/06/27 HDFS概述
    2016/09/26 电能和电功率
    【转】2016/09/22 MapReduce初级案例
    2016/09/22 mapreduce
    2016/09/21 java关键字static
    2016/09/21 Java关键字final
    2016/09/21 java split用法
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/3840044.html
Copyright © 2011-2022 走看看