• 数学图形之锥体


    这一节将为你展示如何生成锥体面,以及各种与锥体相关的图形,有金字塔,五角星,圆锥,冰淇淋, 正劈锥体等.

    相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.

    我之前写过生成圆锥的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)
    y = v
    z = v*sin(u)

    (2)椭圆锥面

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

    (3)二维直线绕X轴旋转生成圆锥面

    vertices = D1:360 D2:100
    
    u = from -10 to 10 D1
    v = from 0 to (2*PI) D2
    
    
    a = rand2(-5, 5)
    b = rand2(-5, 5)
    c = rand2(-2, 2)
    
    x = u
    n = c*(x + a) + b
    
    y = n*cos(v)
    z = n*sin(v)

    (4)二维直线绕Y轴旋转生成圆锥面

    vertices = D1:360 D2:100
    
    u = from -10 to 10 D1
    v = from 0 to (2*PI) D2
    
    
    a = rand2(-5, 5)
    b = rand2(-5, 5)
    c = rand2(-2, 2)
    
    y = c*(u + a) + b
    
    x = u*cos(v)
    z = u*sin(v)

    (5)金字塔

    vertices = dimension1:5 dimension2:20
    
    u = from 0 to (2*PI) dimension1
    v = from 0 to (1) dimension2
    
    r = if (v<0.99, 10, 0)
    
    x = r*v*cos(u)
    z = r*v*sin(u)
    
    y = 8*(1-v)

    (6)五星

    vertices = dimension1:11 dimension2:4
    
    u = from 0 to (2*PI) dimension1
    v = from 0 to (1) dimension2
    
    k = from 0 to 10 D1
    m = mod(k, 2)
    
    t = 10.0 - m*GOLD*10
    r = if(v < 0.99, t, 0)
    
    x = r*v*cos(u)
    z = r*v*sin(u)
    
    y = 2*(1-v)

    (7)N角星

    vertices = dimension1:360 dimension2:4
    
    u = from 0 to (2*PI) dimension1
    v = from 0 to (1) dimension2
    
    n = rand_int2(4, 32)*2
    
    k = from 0 to (n) D1
    m = abs(mod(k, 2) - 1)
    
    t = 10.0 - m*GOLD*10
    r = if(v < 0.99, t, 0)
    
    x = r*v*cos(u)
    z = r*v*sin(u)
    
    y = 2*(1-v)

    (8)风车

    vertices = dimension1:72 dimension2:4
    
    u = from 0 to (2*PI) dimension1
    v = from 0 to (1) dimension2
    
    k = from 0 to 8 D1
    m = mod(k, 2)
    
    t = 10.0 - m*GOLD*10
    r = if(v < 0.99, t, 0)
    
    x = r*v*cos(u)
    z = r*v*sin(u)
    
    y = 2*(1-v)

    (9)冰淇淋

    vertices = dimension1:72 dimension2:72
    
    u = from 0 to (2*PI) dimension1
    v = from 0 to (PI) dimension2
    
    r = 10.0
    
    x = r*sin(v)*sin(u)
    y = r*cos(v)
    z = r*sin(v)*cos(u)
    
    a = rand2(PI/2, PI*0.8)
    d = -r*4
    t = r*cos(a)
    
    e = (v - a)/(PI - a)
    w = r*sin(a)*(1 - e)
    
    h = t + e*(d - t)
    i = w*sin(u)
    j = w*cos(u)
    
    x = if(e < 0.0, x, i)
    y = if(e < 0.0, y, h)
    z = if(e < 0.0, z, j)

     

    (10)曲线绕Y轴旋转生成圆锥面

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

     

    (11)任意朝向的圆锥

    vertices = D1:72 D2:72
    u = from 0 to (2) D2
    v = from 0 to (2*PI) D1
    
    a = rand2(0, 2*PI)
    b = rand2(0, 2*PI)
    
    c = sin(v)
    d = cos(v)
    
    e = sin(b)
    f = cos(b)
    
    g = sin(a)
    h = cos(a)
    
    x = f*h*d - f*g*3 + e*c
    y = g*d + h*3
    z = -e*h*d + e*g*3 + f*c
    
    x = x*u
    y = y*u
    z = z*u
    
    x = x*5
    y = y*5
    z = z*5

     

    (12)正劈锥体

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

     

  • 相关阅读:
    网站制作常用的cms系统有哪些?
    企业网站建设中CMS系统的作用及现状
    PageAdmin企业网站制作中踩过的坑
    怎样制作网站的流程和步骤
    PageAdmin CMS建站系统可视化区块的使用教程
    PageAdmin CMS建站系统的可视化编辑体验
    企业网站建设常用CMS建站系统推荐
    PageAdmin CMS内容管理系统v4.0.11体验评测
    文本框检测回车按键或条码扫描结束回车符
    主播说联播 :铭记历史是为了创造历史 这三样东西不能丢!
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/3873058.html
Copyright © 2020-2023  润新知