【问题标题】:Area from 2d irregular polygon from 3d coordinates来自 3d 坐标的 2d 不规则多边形的面积
【发布时间】: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); 和原点可能是任何多边形点)

标签: 3d geometry polygon area


【解决方案1】:

您可以选择不垂直于您的平面的任何坐标平面(Oxy、Oxz、Oyz),计算在该平面上的投影面积 - 使用 2D 面积算法(如鞋带一)并忽略第三个坐标。

最后将结果除以您的平面和使用的坐标平面之间的角度余弦(可以使用您的平面法线与相应轴的点积来找到)。

这种方法相当有效,因为您不需要计算边长

【讨论】:

    猜你喜欢
    • 2016-06-17
    • 2014-09-07
    • 2013-05-19
    • 2011-01-03
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2016-04-27
    • 2014-08-19
    相关资源
    最近更新 更多