【发布时间】:2018-11-12 01:00:16
【问题描述】:
目前,我正在编写代码来提示 3d 场景中家具物品的坐标。
据我所知,每件家具都有自己的坐标,这些坐标基于家具的父级。 父级是级别还是组等...
如果父对象恰好是“关卡”,则家具的坐标直接包含家具在 3d 场景中的位置。
但是,如果一件家具碰巧有一个非关卡父级,则家具的坐标是基于父级的。
基本上,在我的代码中,我正在编写一个递归函数,它接收家具节点并获取其坐标。
随着递归函数的迭代,它会爬上父级的层级并根据 当前在函数中的节点的坐标。
如果当前在函数中的节点类是“io3d-level”的,递归函数将停止并返回递增的坐标。这是因为 具有“io3d-level”类的节点必须拥有 {0, 0, 0} 的坐标对象。
再次,递归函数将从家具节点的级别进行迭代,并爬上父节点的结构,抓取并添加它们的坐标 移到家具节点的原始坐标上,直到函数内节点的当前类是水平,此时函数停止 并返回坐标。
这个递归函数似乎在几乎所有情况下都能产生原始结果。
但是,此函数不会为通过它发送的少数家具节点返回原始准确的坐标。
这个递归函数背后的假设是,家具节点的真实坐标,相对于关卡,可以通过抓取坐标获得 所有家具节点的父节点并将它们相加。显然考虑到x坐标与x坐标和z坐标相加 与 z 坐标相加。
这个假设是错误的吗?
我可能误解了隐藏 3d.io 场景的坐标系吗?
【问题讨论】:
标签: aframe archilogic 3d.io