gpt4 book ai didi

ios - SCNLookAtConstraint 在幕后做什么?

转载 作者:行者123 更新时间:2023-11-28 07:11:26 26 4
gpt4 key购买 nike

SCNLookAtConstraint 在做什么数学运算?我想尝试用矢量重新创建它。

最佳答案

我认为一旦有了两个方向向量,就可以用叉积和点积来完成。


默认情况下,节点指向其局部坐标系的负 z 轴方向。

我们感兴趣的另一个方向是从 look 的节点到另一个节点,在 look 的节点的局部坐标系中。您可以通过使用 convertPosition:fromNode:convertPosition:toNode:.

如果尚未完成,请归一化两个方向向量。

在局部坐标系中的两个方向,两者之间的叉积给出了一个垂直于两个方向之间可以形成的平面的向量。该矢量是该平面的法线表面。围绕该法线的任何旋转都将成为保留在平面中的另一个矢量。

由于两个方向已归一化,因此两者的点积应为 cos(ϴ),其中 ϴ 是两者之间的角度。

将第一个向量(指向负 z 轴方向的向量)绕平面的法线旋转这个角度应该使它指向与第二个向量(指向负 z 轴方向的向量)相同的方向其他节点)。

这应该是它为两个向量完成的方式(或者至少是一种方式)。

要为节点执行此操作,您将围绕该轴设置该角度的旋转,以查看该节点。这将旋转节点,使其局部负 z 轴(它正在寻找的方向)指向另一个节点。


我在 3D Graphics with Scene Kit 的其中一章中有一个非常相似的示例,其中旋转节点以直接指向球体表面。你可以看看sample code看看那里是如何解决的。

关于ios - SCNLookAtConstraint 在幕后做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28286949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com