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

十八、直线与球体相交求职学习资料

D0b2wT.gif

本文介绍了十八、直线与球体相交求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

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

说明

三维空间中,直线可能与球体相交,也可能不相交。如果相交的话,会有两个交点,恰好相切则是一个。

几何

最简单的方法,就是将球心当成一个点,计算球心到直线的距离。然后与球体半径进行比较。当然,如果只需要比较大小的话,可以用距离的平方来代替距离进行计算。

不过,如果你还记得如何计算点到直线距离的话,我们实际用到了点到直线的垂足(投影点),计算过程用到了向量归一化和点乘。
十八、直线与球体相交

那么如果要求相交点的坐标呢?其实这只是个简单的二维几何问题,我们已经知道了球心A到直线CD的垂足坐标G,也知道了距离AG(的平方),只要用球体半径的平方 – 距离平方,再开方就得到了交点距离垂足的距离EG、FG。 最后得到了交点 E、F 的坐标。
十八、直线与球体相交

代码

“`swift
static func isIntersection2(line:Line, sphere:Sphere) -> Bool {
let distanceSquared = Line.distanceSquaredBetween(point: sphere.position, line: line)
return distanceSquared <= sphere.radius * sphere.radius
}

说明

三维空间中,直线可能与球体相交,也可能不相交。如果相交的话,会有两个交点,恰好相切则是一个。

几何

最简单的方法,就是将球心当成一个点,计算球心到直线的距离。然后与球体半径进行比较。当然,如果只需要比较大小的话,可以用距离的平方来代替距离进行计算。

不过,如果你还记得如何计算点到直线距离的话,我们实际用到了点到直线的垂足(投影点),计算过程用到了向量归一化和点乘。
十八、直线与球体相交

那么如果要求相交点的坐标呢?其实这只是个简单的二维几何问题,我们已经知道了球心A到直线CD的垂足坐标G,也知道了距离AG(的平方),只要用球体半径的平方 – 距离平方,再开方就得到了交点距离垂足的距离EG、FG。 最后得到了交点 E、F 的坐标。
十八、直线与球体相交

代码

“`swift
static func isIntersection2(line:Line, sphere:Sphere) -> Bool {
let distanceSquared = Line.distanceSquaredBetween(point: sphere.position, line: line)
return distanceSquared <= sphere.radius * sphere.radius
}

说明

三维空间中,直线可能与球体相交,也可能不相交。如果相交的话,会有两个交点,恰好相切则是一个。

几何

最简单的方法,就是将球心当成一个点,计算球心到直线的距离。然后与球体半径进行比较。当然,如果只需要比较大小的话,可以用距离的平方来代替距离进行计算。

不过,如果你还记得如何计算点到直线距离的话,我们实际用到了点到直线的垂足(投影点),计算过程用到了向量归一化和点乘。
十八、直线与球体相交

那么如果要求相交点的坐标呢?其实这只是个简单的二维几何问题,我们已经知道了球心A到直线CD的垂足坐标G,也知道了距离AG(的平方),只要用球体半径的平方 – 距离平方,再开方就得到了交点距离垂足的距离EG、FG。 最后得到了交点 E、F 的坐标。
十八、直线与球体相交

代码

“`swift
static func isIntersection2(line:Line, sphere:Sphere) -> Bool {
let distanceSquared = Line.distanceSquaredBetween(point: sphere.position, line: line)
return distanceSquared <= sphere.radius * sphere.radius
}

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

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 十八、直线与球体相交求职学习资料
分享到: 更多 (0)

评论 抢沙发

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

b2b链

联系我们联系我们