区块链技术博客
www.b2bchain.cn

二、点到直线的距离求职学习资料

D0b2wT.gif

本文介绍了二、点到直线的距离求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

说明

上一文中,我们已经得到了点到直线的垂足。所谓距离,其实就是点到这个垂足的向量长度(模长)。我们直接相减,然后求 xyz 的平方和,再开方不就行了?更简单的是 simd 框架提供了计算两个坐标距离的函数distance(),可以直接调用。

func distanceToLine(from point:simd_float3, to line:Line) -> Float {     let position = positionOnLine(from: point, to: line) //上文的求投影点函数     return distance(position, point) }

但是在计算机中,求平方根是个很耗时的操作,在 3D 和 AR 中,每一帧可能需要处理几百甚至几十万个点,每秒 60 帧。如果运算中有大量求平方根操作,会给 CPU/GPU 造成很大压力。所以我们需要利用向量或矩阵,尽可能代替求平方根操作来求距离。

几何

接上文求出点到直线的最近点(垂足)后,我们就得到了 DA 向量,这时只要我们再将 BA 向量投影一次,利用点乘分解到 DA 方向上,就直接得到了距离。
二、点到直线的距离

需要注意的是,如果 D 点与 A 点重合,那 DA 向量就是零向量,无法向其投影。所以需要单独判断。

代码

“`swift
truct Line {
var position = simd_float3.zero
var direction = simd_float3.zero
}

说明

上一文中,我们已经得到了点到直线的垂足。所谓距离,其实就是点到这个垂足的向量长度(模长)。我们直接相减,然后求 xyz 的平方和,再开方不就行了?更简单的是 simd 框架提供了计算两个坐标距离的函数distance(),可以直接调用。

func distanceToLine(from point:simd_float3, to line:Line) -> Float {     let position = positionOnLine(from: point, to: line) //上文的求投影点函数     return distance(position, point) }

但是在计算机中,求平方根是个很耗时的操作,在 3D 和 AR 中,每一帧可能需要处理几百甚至几十万个点,每秒 60 帧。如果运算中有大量求平方根操作,会给 CPU/GPU 造成很大压力。所以我们需要利用向量或矩阵,尽可能代替求平方根操作来求距离。

几何

接上文求出点到直线的最近点(垂足)后,我们就得到了 DA 向量,这时只要我们再将 BA 向量投影一次,利用点乘分解到 DA 方向上,就直接得到了距离。
二、点到直线的距离

需要注意的是,如果 D 点与 A 点重合,那 DA 向量就是零向量,无法向其投影。所以需要单独判断。

代码

“`swift
truct Line {
var position = simd_float3.zero
var direction = simd_float3.zero
}

说明

上一文中,我们已经得到了点到直线的垂足。所谓距离,其实就是点到这个垂足的向量长度(模长)。我们直接相减,然后求 xyz 的平方和,再开方不就行了?更简单的是 simd 框架提供了计算两个坐标距离的函数distance(),可以直接调用。

func distanceToLine(from point:simd_float3, to line:Line) -> Float {     let position = positionOnLine(from: point, to: line) //上文的求投影点函数     return distance(position, point) }

但是在计算机中,求平方根是个很耗时的操作,在 3D 和 AR 中,每一帧可能需要处理几百甚至几十万个点,每秒 60 帧。如果运算中有大量求平方根操作,会给 CPU/GPU 造成很大压力。所以我们需要利用向量或矩阵,尽可能代替求平方根操作来求距离。

几何

接上文求出点到直线的最近点(垂足)后,我们就得到了 DA 向量,这时只要我们再将 BA 向量投影一次,利用点乘分解到 DA 方向上,就直接得到了距离。
二、点到直线的距离

需要注意的是,如果 D 点与 A 点重合,那 DA 向量就是零向量,无法向其投影。所以需要单独判断。

代码

“`swift
truct Line {
var position = simd_float3.zero
var direction = simd_float3.zero
}

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 二、点到直线的距离求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们