【问题标题】:Three.js 2D CSG - intersect, union, subtractThree.js 2D CSG - 相交、联合、相减
【发布时间】:2017-08-26 04:12:32
【问题描述】:

我将 csg.js 与 three.js 一起使用,它似乎只支持 3D CSG。 查看 this

我想相交和联合 2D (three.js) 几何。 有什么方法可以用 three.js 做 2D CSG 吗?

【问题讨论】:

  • 嗯,你试过了吗?结果如何?
  • 是的,我试过了。尝试相交时没有结果,尝试并集时,它给自己不与参数联合。

标签: javascript three.js csg threecsg


【解决方案1】:

您必须考虑的是,平面是无限薄的。因此,当 2 个平面相交时,您将得到一条没有要渲染的面的一维线。如果您使用带有实体的 2D 平面,它可能仍然无法工作,因为其中一个输入不是实体,并且插件名称表明它适用于实体。

考虑当两种类型的几何相交时你会得到什么类型的输出:

如果您想要一个平面作为输出,我建议您与一个非常薄的框相交,例如 2 x 2 x 0.01,而不是使用真正的 2D 平面。将其视为cookie-cutter

另外,请确保您使用的是流形几何,而不是非流形,您可以在此处阅读:https://blender.stackexchange.com/questions/7910/what-is-non-manifold-geometry

【讨论】:

  • 我正在尝试将 2D 几何体作为结果几何体,并使用 three.js 中的 ExtrudedGeometry 使其具有一定高度的 3D 几何体。为此,首先我应用了高度和相交,但几何中的曲线并不那么准确。就像你说的,如果我给 2D 几何体赋予可忽略的高度并使其成为 3D 几何体,那么我可以将结果 3D 几何体转换回 2D 几何体吗?谢谢。
  • 抱歉,我想帮助您,但是如果没有看到一些示例,就很难想象您想要实现的目标。你能用图片更新你的问题吗?另外,如果您想要的是扁平形状,您是否尝试过此示例中的方法:threejs.org/examples/?q=shape#webgl_geometry_shapes ?听起来你只需要一个 THREE.Shape 对象。
猜你喜欢
  • 2022-06-10
  • 2015-11-05
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
相关资源
最近更新 更多