说明
有时我们需要判断两个平面是否平行,可能大家立刻就想到了平面的定义:法线的方向就决定了平面的朝向,当法线平行时,平面也是平行的。
几何
所以,判断平面是否平行的方法,与判断直线平行是一样的。利用叉乘就能解决。
共面问题也是一样的。先判断平行,再判断平面 1 上的任意一点是否在平面 2 上,或者说距离是否是 0。
代码
static func isParallel(line1:Line, line2:Line) -> Bool {
let crossValue = cross(line1.direction, line2.direction)
if length_squared(crossValue) < 0.0001 {
return true
}
return false
}
static func isSame(line1:Line, line2:Line) -> Bool {
if !isParallel(line1: line1, line2: line2) {
return false
}
let vector = line1.position - line2.position
let crossValue = cross(vector, line1.direction)
if length_squared(crossValue) < 0.0001 {
return true
}
return false
}