虚拟现实语言vrml“线集节点”练习1

虚拟现实语言vrml“线集节点”练习1第一次学编程 没想到第一个接触的是 vrml 语言 那就浅浅的做个笔记吧 有不对的地方 欢迎指点 基本几何造型 IndexedLineS 线集节点 要求 创建一个底部为正六边形的七面体轮廓线造型 利用材质节点和线集节点的颜色相关域制作纯色造型效果

大家好,我是讯享网,很高兴认识大家。

   第一次学编程,没想到第一个接触的是vrml语言。那就浅浅的做个笔记吧。

   有不对的地方,欢迎指点!!

基本几何造型

       IndexedLineSet (线集节点)

要求:

       创建一个底部为正六边形的七面体轮廓线造型,利用材质节点和线集节点的颜色相关域制作纯色造型效果。

 代码:

Shape { appearance Appearance { material Material { diffuseColor 0.5 0.5 0.5 } } geometry IndexedLineSet { coord Coordinate { point [ 0 3 0 #0 1.732 0 -1 #1 1.732 0 1 #2 0 0 2 #3 -1.732 0 1 #4 -1.732 0 -1 #5 0 0 -2 #6 ] } coordIndex [ #side 0 1 -1 0 2 -1 0 3 -1 0 4 -1 0 5 -1 0 6 -1 #bottom 1 6 5 4 3 2 1 -1 ] colorPerVertex FALSE color Color { color [ 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 ] } } } 

讯享网

 运行结果:


讯享网

 理解:

Shape{}:节点

Appearance{}:外观特征域

Material{}:材质属性

diffuseColor 0.5 0.5 0.5 :漫反光色,值为0.5 0.5 0.5

geometry:几何形状域

IndexedLineSet{}:线集节点

coord:设置线造型的端点(点在坐标轴中的位置)

Coordinate{}:设置一系列用以创建一条直线或多条折线路径的坐标索引列表

coordIndex []:造型着色

colorPerVertex TRUE:设置对线造型的渲染是基于端点,还是基于线段,TRUE是基于端点

Color:用来为线单独着色

线集造型基本语法结构:

    {
        material Material {   }
    }

   }

    coord Coordinate 
            {
                point 
                [     
                     0  3  0     #0
              1.732  0 -1     #1
              1.732  0  1     #2
                     0  0  2     #3
             -1.732  0  1     #4
             -1.732  0 -1     #5
                     0  0 -2     #6              
                ]
            }

确定点位置:这里指每个点的三维( x  y  z )位置 ,#后面的是这7个点从0开始排序,分别是0,1,2,3,4,5,6,代表点的序号。

此模型我设的高为6,正六边形边为2,然后在纸上画个正六边形+二维坐标轴(x,z),利用勾股定理找到点的位置,由于正六边形取不到整数,所以这里取的根号三的近似值1.732。

coordIndex 
                [       
                    #side
                     0 1 -1 
                     0 2 -1
                     0 3 -1
                     0 4 -1 
                     0 5 -1
                     0 6 -1
                     #bottom
                    1 6 5 4 3 2 1 -1
                ]    

连线:例:0 1 -1  是将序号为0和1的点连接起来,-1表示这条折线结束。

侧面的每个点都要与序号为0的点相连一下,底部的点则要依次连接,(注意法向,封底的正面要朝外,只是做轮廓线可以不管,做面的时候一定要理清楚点序)

color Color 
            {
                color 
                [
                    0 1 0
                    1 1 1
                    1 0 1
                    1 0 0 
                    0 1 1
                    0 0 1
                    1 1 0
                ]

            }

着色:上面的值代表R G B,从第一个(0 1 0)开始依次往下对应coord Coordinate中的线的每条颜色。

注意:

        渐变:一条线因顶点色的不同,线会从一个顶点颜色渐变成另一个顶点颜色。

       纯色:是线着色方式,以线为单位,给与一种颜色。

小讯
上一篇 2025-03-12 14:21
下一篇 2025-02-14 13:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35079.html