说明
三角形求面积是个很常用操作,一般可以用叉乘来计算。
几何
叉乘的几何意义就是得到一个同时垂直于两向量的新向量,同时长度等于两向量围成的四边形的面积。而三角形面积,就是四边形的一半。
当然了,有时候三角形顶点坐标并不知道,但是却知道三边长,那么也可以用海伦公式来求面积。
代码
///三角形的面积
static func area(triangle:Triangle) -> Float {
let vector1 = triangle.point2 - triangle.point1
let vector2 = triangle.point3 - triangle.point2
let crossValue = cross(vector1, vector2)
return length(crossValue) / 2
}
///由三边长度求面积(海伦公式)
static func area(edgesLength:simd_float3) -> Float {
let s = edgesLength.sum()*0.5
return sqrtf(s*(s-edgesLength.x)*(s-edgesLength.y)*(s-edgesLength.z))
}