S02E13:三角形的面积

217 阅读1分钟

说明

三角形求面积是个很常用操作,一般可以用叉乘来计算。

几何

叉乘的几何意义就是得到一个同时垂直于两向量的新向量,同时长度等于两向量围成的四边形的面积。而三角形面积,就是四边形的一半。

当然了,有时候三角形顶点坐标并不知道,但是却知道三边长,那么也可以用海伦公式来求面积。

代码

///三角形的面积
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))
}