gpt4 book ai didi

swift - 查找从 3d 空间中的另一个点投影的直线上的点的 3d 坐标

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

使用 Swift、ARTKit/SceneKit

enter image description here

我在 3d 中有一条线 AB,我有 A 点和 B 点的 xyz 坐标。我还有一个 C 点,我也知道它的 xyz 坐标。

现在,我想找出直线AB上D点的xyz坐标;假设 CD 垂直于 AB。

在 Swift 中有什么简单的方法可以做到这一点。

最佳答案

用标量 t 参数化行 AB:

P(t) = A + (B - A) * t`

D = P(t) 使得 CD 垂直于 AB,即它们的点积为零:

dot(C - D, B - A) = 0

dot(C - A - (B - A) * t, B - A) = 0

dot(C - A, B - A) = t * dot(B - A, B - A)

// Substitute value of t

--> D = A + (B - A) * dot(C - A, B - A) / dot(B - A, B - A)

快速代码:

var BmA = B - A
var CmA = C - A
var t = dot(CmA, BmA) / dot(BmA, BmA)
var D = A + BmA * t;

关于swift - 查找从 3d 空间中的另一个点投影的直线上的点的 3d 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52822663/

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