- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在渲染由 600 多个在笛卡尔平面上对齐的 SVG 元素组成的 map 。我需要它们是单独的元素,因为我希望它们单独响应鼠标事件等。
我的问题是:为了应用大量转换,例如“翻译”(更改其位置),哪个选项对浏览器来说“更轻”?
渲染像这个六边形这样的多边形:
<polygon points="43.301270189221924,55 43.301270189221924,65 51.96152422706631,70 60.6217782649107,65 60.6217782649107,55 51.96152422706631,50"></polygon>
...或将它们创建为如下路径:
<path d="M43.301270189221924,55L43.301270189221924,65L51.96152422706631,70L60.6217782649107,65L60.6217782649107,55L51.96152422706631,50Z"></path>
最佳答案
我怀疑会有很大差异,但如果有的话,我希望 polygon
会稍微快一些,因为它是专门用于多边形的。
事实上,在运行两个分析脚本(见下文)后,我的上述评估似乎是正确的。在所有浏览器中,多边形都比路径快一点,但差异并不显着。所以我怀疑你真的需要担心这个。幸运的是,无论如何,polygon
听起来都是合乎逻辑的选择。
分析路径
:
<svg xmlns="http://www.w3.org/2000/svg">
<g id="paths"></g>
<text x="20" y="20" id="out"></text>
<script><![CDATA[
var d = "M43.301270189221924,55 L43.301270189221924,65 L51.96152422706631,70 L60.6217782649107,65 L60.6217782649107,55 L51.96152422706631,50 Z";
var paths = document.getElementById('paths');
var path = document.createElementNS("http://www.w3.org/2000/svg", 'path');
path.setAttribute('d', d);
var start = new Date();
for (var i = 0; i < 20000; i++)
{
var el = path.cloneNode(true);
el.setAttribute('transform', 'translate(' + ((i * 20) % 1000) + ',' + ((i / 50) * 20) + ')');
paths.appendChild(el);
}
setTimeout(function() {
document.getElementById('out').textContent += 'Path: ' + (new Date() - start) + 'ms';
// paths.parentNode.removeChild(paths);
}, 10);
]]>
</script>
</svg>
对于多边形
也是如此:
<svg xmlns="http://www.w3.org/2000/svg">
<g id="polygons"></g>
<text x="20" y="20" id="out"></text>
<script><![CDATA[
var points = "43.301270189221924,55 43.301270189221924,65 51.96152422706631,70 60.6217782649107,65 60.6217782649107,55 51.96152422706631,50";
var polygons = document.getElementById('polygons');
var polygon = document.createElementNS("http://www.w3.org/2000/svg", 'polygon');
polygon.setAttribute('points', points);
var start = new Date();
for (var i = 0; i < 20000; i++)
{
var el = polygon.cloneNode(true);
el.setAttribute('transform', 'translate(' + ((i * 20) % 1000) + ',' + ((i / 50) * 20) + ')');
polygons.appendChild(el);
}
setTimeout(function(){
document.getElementById('out').textContent += 'Polygons: ' + (new Date() - start) + 'ms';
// polygons.parentNode.removeChild(polygons);
}, 10);
]]>
</script>
</svg>
关于javascript - 哪个更轻 : polygon or path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6950815/
我正在尝试在使用 jOOQ (3.9.x) 时在 MySQL POLYGON 类型和 Jts Polygon 之间进行无缝转换。理想情况下,我只想将数据库中的 WKT(众所周知的文本)解析为 Jts
文档字符串说: Polygon.contains 如果几何包含另一个则返回 True,否则返回 False Polygon.within 如果几何体在另一个几何体内部则返回 True,否则返回 Fal
我有一个包含 1000 个多个重叠多边形的大型 shapefile。我试图在这些多个重叠多边形之外合并区域,这些多边形不与图层中的任何多边形重叠。这些实际上是火灾多次燃烧的区域,我正在寻找火灾仅燃烧一
我有两个问题: 1.) 我刚刚找到了 boost 1.53 Polygon 实现(在 http://www.boost.org/doc/libs/1_53_0/libs/polygon 上)并且想测试
所以我想在 javascript 中合并相邻的多边形,这就是我的代码实际拥有的内容: 我想删除内部笔划但保留边框笔划。 所以我想从这里开始: 对此: 我想保留巴黎的洞 - 我可以定义必须对哪些多边形进
我有一个 geojson 文档,我想对其执行一些 GEOS 转换,例如:计算交点、从另一个多边形中减去多边形等。 我已经能够创建 geo_types::Polygon来自文档,但无法将其转换为 GEO
我正在尝试展示纽约州 COVID 病例的增长情况 这段代码得到了我想要的情节,但没有动画或时间方面。 完整错误: Error in insert_points(polygon$x, polygon$y
我正在尝试使用多边形实现地理围栏系统。基本上,如果用户进入地理围栏区域,用户应该会收到通知。经过许多研究后,我只能使用 Circular 找到 Geofence。到目前为止,我实现了该系统,但它仅通过
所以,我做了一个棱镜: width=30 thickness=15 polyhedron( points=[ [width,0,0],[width,0,thickness],
我正在尝试在 openscad 中创建一个风扇管道,将管道从圆形展平为椭圆形。有没有办法在openscad中做到这一点?如果没有,是否还有其他编程方式来生成这种类型的 3d 模型? 谢谢 丹尼斯 最佳
我有许多多边形,每个多边形都表示为一个点列表。我正在寻找一种快速算法来遍历多边形列表并取消所有交叉边,直到没有交叉边为止。 当前版本的伪代码: While True: For each pai
我在整个互联网和科学数据库中搜索了一篇关于单调多边形的 Delaunay 三角剖分的论文。我不是在寻找任意的多边形三角剖分,而是在寻找 Delaunay 三角剖分。有人知道这样的出版物,其中单调多边形
我有一个 2D 多边形,我想将其缩小特定的偏移量 (A) 以匹配原始多边形的特定面积比 (R)。 是否有解决此类问题的公式或算法?我对三角形/四边形的简单解决方案以及复杂多边形的解决方案感兴趣。 我附
我有一个由点列表组成的二维多边形,我想检查给定点是否位于该多边形中,但我找不到检查这个的好方法。 谁能指出我正确的方向? 最佳答案 http://en.wikipedia.org/wiki/Point
在我的调查过程中,我一直试图为拟议的风力涡轮机开发找到合适的位置,通过这个我计算了合适的区域,如图 1 所示。但我仍然试图找到一种方法来计算可能的涡轮机数量位于该多边形内部,由于涡轮机不能在彼此的 6
如何从一组固定位置的多边形中选择最少数量的多边形,其并集覆盖输入多边形? 例如,让我们考虑以下输入,其中绿色多边形是查询集,蓝色多边形是查询: 正确的覆盖应该是两个多边形: 如何计算哪些多边形最有效地
我正在使用传单绘制来创建多边形。我的要求是当用户绘制多边形时,它不应与现有多边形相交/重叠。我已经使用多边形传单中的点来检测点是否落在多边形内并且它正在工作,但问题是我无法检测一条线是否穿过另一个多边
我问是否有任何特定的顺序需要输入我的坐标集以使用 Java 中的 Graphics2D 类绘制多边形。 例如,对于 X 和 Y 坐标数组,我的坐标(X,Y)的值是否需要按降序/升序排列?或者另一个例子
我正在处理 IfcFace .我得到了一个带孔的简单多边形,我需要将它转换为多个没有孔的简单多边形,以便我的 CAD 进一步处理它。一个小演示说明: 我最好的方法是进行约束德劳内三角剖分并将三角形重新
我正在使用 NLCD 数据处理一个巨大的区域,7 个州的森林和非森林。在一些森林区域内有一 block 地 block (这是我正在研究的硕士论文)。我用这个大数据集让我问过的每个人都难过,但我们确信
我是一名优秀的程序员,十分优秀!