【发布时间】:2020-11-01 06:28:06
【问题描述】:
我需要根据其 3D 坐标计算 2d 不规则多边形表面的面积。
我可以从 2d 坐标计算不规则多边形的面积,但不能从 3d 坐标计算。
如果可能,我想在 Excel 或 VBA 中完成。
非常感谢! :)
【问题讨论】:
-
它是平面的、弯曲的还是折叠的?多边形是线性的还是弯曲的边缘?它是凸的还是凹的?问题到底出在哪里?对于平面多边形,只需在与多边形相同的平面上创建 2 个垂直基向量
u,v和原点p0并使用点积转换为 2D ...pos2D.x = dot(pos3D-p0,u); pos2D.y = dot(pos3D-p0,v);如果您有三角测量,您可以通过以下方式直接在 3D 中计算区域总结三角形边叉积的大小 / 2 -
该图是平面的,但它是 3D 的。它可能在旋转平面中(而不是在正交轴平面中)。你的建议似乎很完美。你的意思是我可以将 3D 坐标转换为 2d 坐标,然后计算面积?你能举个例子吗?另外,关于 3D,您是指 Delaunay 三角剖分吗?
-
任何三角测量都可以...... IIRC 3D
triangle(p0,p1,p2)的面积是0.5*length(cross(p1-p0,p2-p0))... 对于 3D->2D,您可以采用多边形的任意 2 个非平行边(p0, p1,p2,p3,....)(u=p1-p0; v=p2-p1; v=cross(u,v); v=cross(v,u);和原点可能是任何多边形点)