golang实现已知三角形三点坐标,求三角形面积
代码如下:
func GetTriangleAreaByVector(x vector.Vector3,y vector.Vector3,z vector.Vector3) float64 { //根据三角形三个点坐标求面积 //先算三角形三个边的长度 a := vector.GetDistance(x,y) b := vector.GetDistance(x,z) c := vector.GetDistance(y,z) s := (a + b + c) / 2 area := math.Sqrt(s*(s-a)*(s-b)*(s - c)) return area }
//求两点间距离
func GetDistance(a Vector3,b Vector3) float64{
if a==b {
return 0
}else {
return math.Sqrt(math.Pow(a.X - b.X, 2) + math.Pow(a.Y - b.Y, 2) + math.Pow(a.Z - b.Z, 2))
}
}
type Vector3 struct {
X float64 `json:"x"`
Y float64 `json:"y"`
Z float64 `json:"z"`
}
此函数的传入参数是三角形三个点的坐标。输出三角形面积