【问题标题】:Calculate area of complex shaped SVG计算复杂形状SVG的面积
【发布时间】:2018-10-06 12:17:10
【问题描述】:

我希望能够通过定义宽度来计算给定 SVG 的面积,因此长度也以厘米为单位。

这不仅仅是height*width,因为它的 SVG 是复杂的形状。

假设我有这个 SVG:

如何使用 HTML/JavaScript、Python 或 Node.JS 计算它的表面积?

【问题讨论】:

  • 你能解释一下你为什么要降价吗?哈哈,很明显区域不是宽*高
  • 您将区域定义为什么?所有多边形面积的总和?你试过什么?
  • @jhpratt SVG 的路径可能与其他路径重叠,因此计算形成 SVG 的所有多边形/路径的面积可能是错误的,我需要减去重叠部分,这将使它更多复杂的。现在我正在尝试将 SVG 转换为 PNG,然后检测 PNG 的边/角,获取这些角的坐标,然后计算复杂多边形的面积。
  • [2021] 这个 SO 答案计算 one <path>: stackoverflow.com/questions/67873157/… 的面积

标签: javascript python node.js math svg


【解决方案1】:

矩形的表面积用以下公式计算:

Area = length * width

在 JavaScript 中执行此操作非常简单:

var svgWidth = ...
var svgHeight = ...
var svgArea = svgWidth * svgHeight;
console.log("The area of the SVG is " + svgArea);

【讨论】:

  • 抱歉,这甚至没有靠近正确的区域。你可以清楚地看到它的形状不是一个矩形,而是一个复杂的形状。我想知道如何遍历 SVG 的所有路径并计算面积以计算整个面积。这是我想到的唯一方法,但我不知道该怎么做。另外,有些区域在其他区域之上,需要减去它们,所以也许有更好的方法。
  • 嗯,从您的问题中并不清楚,从路径计算它会非常复杂。
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2014-02-16
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
相关资源
最近更新 更多