【问题标题】:ARKit How to draw plane from corners not from centerARKit如何从角落而不是中心绘制平面
【发布时间】:2019-04-07 09:06:39
【问题描述】:

我有垂直平面,比如说墙。在墙上,我必须从 point1 到 point2 添加另一个平面,其中 point1 和 point2 是来自 Wall 的命中测试的 SCNVector。

墙节点以动态值旋转欧拉角 Y。要在墙上画飞机,我必须申请

 plane.eulerAngles = wall.eulerAngles

它工作正常。我可以画飞机。 但平面是从中心绘制的,这是我不想要的。我希望从顶角绘制平面,所以我必须从 point1 减去宽度/2 和高度/2。

但是平面是旋转的,所以通过改变 x , y 值在这里不起作用。我还需要根据 Y 旋转来改变 Z 值

问题:如何计算旋转平面的宽度/2和高度/2?

如何重现

1) 使用 ARKit 应用程序创建 Xcode 项目

2) 在ship.scn 文件中添加SCNPlane 对象

3) 在右侧面板中将 Y 的角度更改为 30

4) 用红色箭头移动平面只观察X值也有Z值改变

用红色箭头移动后

​​>

【问题讨论】:

    标签: ios swift math scenekit arkit


    【解决方案1】:

    使用检查器时,您可以将“编辑空间”设置为“世界”(而不是“本地”),使用操纵器(视口中的箭头)时,您还可以选择将编辑空间更改为“世界” " 或 "父" 以便您的更改不考虑节点的旋转。

    【讨论】:

    • 感谢您的回复。实际上的问题是如何以编程方式找到显示的价值。就像图像 1 的 xyz 是 5,5,5 但是在我移动 X,Z 后,由于旋转 30 值发生了变化。所以我想类似地找到角落位置。抱歉我的困惑问题!
    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多