Layer2D节点的使用
首先,输入下列代码,表示定义该节点:
EXTERNPROTO Layer2D[
eventIn MFNode addChildren
eventIn MFNode removeChildren
exposedField MFNode children
exposedField SFVec2f translation
exposedField SFVec2f size
exposedField SFNode background
exposedField SFNode viewport
]
["urn:inet:blaxxun.com:node:Layer2D",
"blaxxunCC3D_nodes.wrl#Layer2D",
"nodes.wrl#Layer2D"]
注意:这其中引用了一个blaxxunCC3D_nodes.wrl文件,需要从网上获取。
然后就可以开始使用该节点了。如:
DEF logo Layer2D {
background Background {
skyColor 0 0 0
}
size 0.119 0.12
translation 0.1 0.86
children [
#该处放置你要放的造型
]
}
size 取值范围[0~1 0~1],默认为(1 1),即铺满整个窗口(但请注意:窗口的比例为4:3)。
因此在使用时一般要将其进行缩小变换,但因为一般窗口比例为4:3,因此进行比例计算的时候,需要加入这个比值。当 然如果你只是要大致的确定比例,就不用这么麻烦了。我之所以考虑到这点,是因为我在该处放了一幅图的时候,要确定容纳 这幅图的区域的大小,才有了这个问题。
我总结出了这个公式,希望对由此需要的朋友有点帮助。
x:y=3x0:4y0
其中,x和y表示size的值(x y),x0和y0表示原造型的x y值,比如Box即表示其(x y z)中的(x y)。
最后还要修正下3:4这个比例,因为浏览器窗口上还有菜单栏、工具栏、地址栏等会占掉很多空间,因此,我将这个比例修正成2.5:4,那最后的公式即为:
x:y=2.5x0:4y0
当然,你可以根据实际情况调整这个比例。
好了,那怎么样用这个公式呢?
其实很简单,你先确定x和y中的一个值(大概差不多就行了),再利用该公式计算另一个值即可。
translation 表示该Layer2D区域左下角的坐标值,取值范围[0~1 0~1],默认为(0 0),在窗口左下角,最大值为(1 1),此时,已不可见,因为该值是区域左下角的坐标值。
background 后面可以跟很多节点,一般可用Background设置其背景色。
children 中放置造型