【问题标题】:x3d - how to create polygon (polyhedron)?x3d - 如何创建多边形(多面体)?
【发布时间】:2015-09-13 11:07:30
【问题描述】:

我是 x3d 的新手,不知道如何在 x3d 中创建像图片一样的平坦区域? 以下是点的坐标:
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

有人可以帮我吗?
哪种方式更好:挤压或面集或索引面集?
谢谢。

更新:

我试过了

    <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>

结果要么是空白的,要么是一些看起来很随意的图片。
有什么想法吗?

【问题讨论】:

  • 这不是代码编写服务。试一试,说出您尝试过的方法、问题所在、您如何尝试解决这些问题等。请至少发布一些您为绘制此图而编写的代码。
  • 嗨,好的,谢谢。您能否编辑问题并将其放在那里?它会让它更清晰。另外,您尝试过的方法有什么问题?
  • 结果要么是空白的,要么是一些看起来很随意的图片。有什么想法吗?
  • 我不知道,从未使用过您提到的软件/编程语言。我只是在帮助您格式化问题,以便引起可能知道答案的人的注意;)祝您好运。

标签: polygon x3dom x3d


【解决方案1】:

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

首先,IndexedFaceSet 使用驼峰式,例如 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> 

【讨论】:

猜你喜欢
  • 2015-03-22
  • 2014-07-07
  • 2021-11-08
  • 2019-10-31
  • 2015-07-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 2013-12-11
相关资源
最近更新 更多