ARKit如何从角落而不是从中心绘制平面

时间:2018-11-03 09:42:34

标签: ios swift math scenekit arkit

我有垂直平面,比如说墙。在墙中,我必须从point1到point2添加另一个Plane,其中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值

enter image description here

用红色箭头移动后

enter image description here

1 个答案:

答案 0 :(得分:0)

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

enter image description here enter image description here