If you want to compute face areas of a RhinoCommon mesh you could also implement e.g. Heron’s formula, like so:
import math
def triangleArea(ptA,ptB,ptC):
""" Compute area of triangle using Heron's Formula """
dA = ptB.DistanceTo(ptC)
dB = ptA.DistanceTo(ptC)
dC = ptA.DistanceTo(ptB)
p = (dA+dB+dC)/2
area = math.sqrt(p*(p-dA)*(p-dB)*(p-dC))
return area
def computeMeshFaceAreas(mesh):
""" Computes the face areas for a mesh using triangleArea """
faceAreas = []
vts = mesh.Vertices
for f in mesh.Faces:
if f.IsTriangle:
fA = triangleArea(vts[f.A],vts[f.B],vts[f.C])
elif f.IsQuad:
fA1 = triangleArea(vts[f.A],vts[f.B],vts[f.C])
fA2 = triangleArea(vts[f.A],vts[f.C],vts[f.D])
fA = fA1 + fA2
faceAreas.append(fA)
return faceAreas