x3d - 如何创建多边形(多面体)?

时间:2015-09-13 11:07:31

标签: polygon x3dom x3d

我是x3d的新手,不知道如何在x3d中创建像图片一样的平面区域? https://github.com/sindresorhus/pageres/issues/77 这是点的坐标:
2360,1746,2246,1746,2139,1746,2139,1611,1923,1611,1923,2053,2246,2053,2246,1984,2371,1984,2371,2053,2462,2053,2462,1993,2496, 1993,2496,2053,2555,2053,2556,1746
  任何人都可以帮我吗? 并且哪种方式更好:挤出或者faceset或indexedfaceset?
感谢。

更新

我试过这个

<shape>
  <appearance alphaclipthreshold="0.1" sorttype="auto">
    <material specularcolor="0,0,0" shininess="0.2" emissivecolor="0,0,0" ambientintensity="0.2" diffusecolor="1 1 0.94" transparency="0"></material>
  </appearance>
  <indexedfaceset>
    <coordinate point="2360 1746 2246 1746 2139 1746 2139 1611 1923 1611 1923 2053 2246 2053 2246 1984 2371 1984 2371 2053 2462 2053 2462 1993 2496 1993 2496 2053 2555 2053 2556 1746"></coordinate>
  </indexedfaceset>
</shape>

而且:

<Shape>
  <Appearance alphaClipThreshold="0.1" sortType="auto">
    <Material ambientIntensity="0.2" shininess="0.2" transparency="0.0" emissiveColor="#000000" specularColor="#2A2A2A" diffuseColor="#3F7EBD"></Material>
  </Appearance>
  <Extrusion scale="1,1" orientation="0,0,0,0" height="0.1" crossSection="2360,1746,2246,1746,2139,1746,2139,1611,1923,1611,1923,2053,2246,2‌053,2246,1984,2371,1984,2371,2053,2462,2053,2462,1993,2496,1993,2496,2053,2555,20‌​53,2556,1746"></Extrusion> </Shape>

结果是空白或一些随意的图片 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您有多个问题。为了便于参考,我推荐X3D:Web作者的可扩展3D图形。 IndexedFaceSet实际上不是更容易开始的X3D节点之一。

首先,IndexedFaceSet使用camel case,例如IndexedFaceSet。其次,IndexedFaceSet几何体有两个,而不是一个关键组件来设置几何。一个是坐标点列表,就像你一样。但这是一个无序的点列表。作为IndexedFaceSet元素的一部分,您必须按点编号指定顶点,每个面以“-1”结尾以表示结束。最好按逆时针顺序(否则你需要设置ccw =“false”)。

此外,如果您的多边形不是凸面(您的多边形不是凸面),则需要设置convex =“false”,因为默认值为true。

还记得X3D确实是3D。您的点列表必须提供x,y和z坐标,即使索引面集是一个平面,因为它可能位于3D空间中的任何方向。您只为每个点提供了两个坐标。

这是一个简单的例子:

<X3D>
<Scene>
<Shape>
  <IndexedFaceSet ccw = "true" colorPerVertex = "false" solid = "false" convex = "false" coordIndex='0 1 2 3 4 5 6 7 -1'>
    <Color color='0 0 1'/>
    <coordinate point='-4 -4 0 -1 -4 0 -1 1 0 1 1 0 1 -4 0 4 -4 0 4 3 0 -4 3 0'></coordinate>
  </IndexedFaceSet>
</Shape>
</Scene>
</X3D>