相邻的 svg:多边形边不相交

2023-12-28

我正在使用彼此相邻的多边形绘制条形图,如下所示:

如果仔细观察,每个多边形之间都有空白(放大):

我正在努力阻止这种情况发生。我发现了 SVGshape-rendering https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering属性并将其设置为geometricPrecision。这解决了问题,但给了我非常清晰的边缘:

我也不希望那样。我尝试了其他可能的值shape-rendering但没有一个运作良好。 (我在 WebKit 上尝试过这些。)我正在寻找解决方案。

对于那些感兴趣的人,图表的 jsFiddlehere http://jsfiddle.net/9Vbgu/.


实际上,问题在于您应该将图形渲染为单个多边形,而不是每个条形的一个多边形,但我假设您这样做是有原因的。

一种可能的解决方案是设置描边属性,以便绘制多边形的轮廓,使它们稍微重叠。您可以在组元素上设置这些属性,以将它们应用到所有封闭的多边形。

<g stroke-width="0.5" stroke="black" stroke-linejoin="round">

更新了 jsFiddle 链接 http://jsfiddle.net/9Vbgu/2/

请注意,这使得图表看起来比应有的稍大,但我认为这不是一个重大问题。

至于发生这种情况的原因,那是因为多边形的偏移量没有在像素边界上完全对齐(至少在大多数情况下)。如果将 svg 宽度固定为 300px 的倍数(从而在像素边界上对齐所有内容),间隙就会消失。

考虑一个 4x4 像素区域,您尝试在其中渲染从 (0,0) 到 (2.5,2.5) 的正方形,如下所示:

您可以将从 (0,0) 到 (1,1) 的像素绘制为纯黑色,但是如何处理边缘 - 它们既不是全黑也不是全白。抗锯齿解决方案是使用与像素被覆盖的面积成比例的灰度。

但是,当您尝试在第一个多边形旁边渲染另一个多边形时(即从偏移量 2.5 开始),您将遇到相同的问题,即对左侧边缘进行抗锯齿处理。只是这次会稍微暗一点,因为背景是灰色而不是白色。

正如您所发现的,您可以通过设置不同的值来禁用此效果形状渲染选项,但是您会失去倾斜线上抗锯齿的优势,使这些边缘看起来呈锯齿状。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相邻的 svg:多边形边不相交 的相关文章

  • java:如何仅选择jtable中的一个单元格而不是整行

    在 jTable 中 我希望当用户单击单元格时 这句话会打印在屏幕上 I am cell in row X and column Y 其中 x 和 Y 是单击单元格的行和列 但我得到的是 例如 当我单击第 1 行和第 4 列中的单元格时 我
  • 如何在SVG中实现橡皮擦功能?

    我认为 SVG 在某些功能上比 HTML5 canvas 更好 但我无法想象一种简单的方法来实现橡皮擦功能 我有什么方法或例子吗 这是一种非常笨拙的方法 但您可以简单地用白色描边模仿标准钢笔工具
  • AngularJS ng-重复重新渲染

    我正在使用 AngularJS 构建一个简单的应用程序 应用程序向服务器发出异步 AJAX 调用 服务器返回一个如下所示的数组 paragraphs content content one content cnt two content r
  • 如何在不违反 MVVM 的情况下绑定到不可绑定的属性?

    我在用SharpVector 的 SvgViewBox https sharpvectors codeplex com 显示静态资源图像 如下所示
  • IPython Notebook Markdown——允许的 HTML 标签列表是什么以及如何更改它们?

    我正在使用 IPython Notebook markdown 创建一个文档 它确实允许一些 HTML 例如 img 例如但我添加了包含 SVG 文件 但它不会显示在 IPython Notebook 输出中 我仔细检查了 IPython
  • 更改svg中半圆的背景颜色

    我想在此 svg 代码上创建上弦月和第三弦月
  • 将元素添加到 D3 圆包节点

    我正在尝试制作一个可缩放的圆形包装图 我希望每个子圆圈包含一个较小的图表 该图表始终具有相同的结构 即 4 列 只有条形的高度会改变 我尝试添加一个简单的rect到目前为止我的图表 但矩形没有添加到圆圈中并且是静态的 JS var marg
  • matplotlib 后端对渲染格式有什么限制?

    我对 matplotlib 使用的后端在确定可以呈现哪些格式方面所扮演的角色感到困惑 例如 文件说 http matplotlib org faq usage faq html what is a backend agg 后端生成 PNG
  • 无法在 Firefox 中显示我的 svg 图像?

    我无法在 Firefox 中显示我的 svn image 它在 Safari 和 Chrome 中工作正常 没有 IE 所以还没有测试过 它在我的html中是这样实现的 img 类 logo1 src images logo6 svg 其中
  • SVG 捕获鼠标坐标

    我知道之前已经有人问过有关 svg 鼠标坐标的问题 但我对我当前遇到的行为感到非常困惑 而且似乎没有一个线程能够解决它 我用于捕获坐标的方法 var pt svg createSVGPoint Created once for docume
  • SVG 图标像素对齐?

    在此图像中 左侧 黑色 垃圾桶是图标字体 它的字体大小是 16px 这使得图标在 100 的时间里看起来都很清晰 两个蓝色垃圾桶是 SVG 它们具有完全相同的标记 其中之一happened一个是像素对齐的 另一个不是 我怎样才能强制我的 S
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • 使圆圈与 d3.js 上的多线匹配相同的颜色过滤?

    我有一个多线图 当按每种水果过滤时会更新 每条线条颜色对应不同的销售年份 在 的帮助下Shashank https stackoverflow com users 5569282 shashank 每个数据点线上的圆圈已添加到组中 而不是直
  • 如何在 SVG 中显示 unicode?

    以 SVG 格式存储在数据库中的信息 如果数据包含文本 它将显示为 Unicode 有必要在浏览器中正确显示 SVG 文件
  • 为什么这个 JS 创建的 SVG 在 Chrome 中不起作用?

    考虑这个简单的 SVG SMIL 动画
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

    我到处寻找这个问题的答案 并找到了一些我认为可能有用的资源 但最终没有让我找到答案 这里有一些 外部SVG http bl ocks org mbostock 1014829 嵌入SVG https stackoverflow com qu
  • SVG img keepAspectRatio Chrome

    当我对 SVG 文件中的图像使用preserveAspectRatio none 时 它 似乎在 Google Chrome 中不起作用 SVG 不会根据图像宽度和高度进行缩放
  • 双弧形

    我目前正在尝试生成 波浪形幽灵底部 形状 该形状包含两条双曲线 虽然底部的部分这个图片 http images clipartpanda com ghost clip art castle ghost clipart1 jpg我认为以更好的
  • 如何在“object”标签内选择 SVG?

    HTML 页面的内容如下所示 方法如下script js looks var tooltip d3 select body append div style position absolute sty
  • 将 SVG 路径转换为绝对命令

    给定一个 SVG Path 元素 如何将所有路径命令转换为绝对坐标 例如 转换此路径

随机推荐

  • 无法使用带有节点的express使用res.send()发送数字

    我正在尝试使用节点中的 Express 获得 imdb 评级 但我很挣扎 电影 json id 3962210 order 4 361276149749756 1988 fields year 2015 title David and Go
  • 单击时导航项标题消失

    我创建了带有导航视图的抽屉 我有正在调用其他活动的导航项目 问题是当我单击导航项时 其他活动启动 如果我返回主活动并打开抽屉 则单击的导航项的标题消失 只有我可以看到该项目的图标 code public class MainActivity
  • 带有文本、复选框、选择的 jQuery 表过滤器

    需要使用文本搜索 复选框和选择从表外部过滤表 PicNet 表过滤器 http www picnet com au resources tablefilter demo htmfor jQuery 适用于搜索和使用表外的复选框 尽管我找不到
  • Twitter Bootstrap - 100% 高度

    我正在尝试使用 twitter bootstrap 框架为我的应用程序设计一个管理面板 但我无法让我的布局正常工作 I was inspired by this design It would be a two column layout
  • 如何将不同的 DataFrame 组合成一个分组条形图

    我正在尝试复制答案this https stackoverflow com questions 65052443 creating a grouped bar plot with seaborn问题 我看不出我在做什么有什么不同 我的输出
  • 无法从 Linux 连接到 SQL Server

    我正在尝试连接到 CentOS 5 8 上的 SQL Server 2008 我正在使用 unixODBC 2 3 0 和 SQL Server ODBC 驱动程序 www microsoft com en us download deta
  • 链接描述文件中的 KEEP 是什么意思?

    The LD手册 http ftp gnu org old gnu Manuals ld 2 9 1 html mono ld html SEC2没有解释什么KEEP命令执行 下面是第三方链接描述文件的一个片段 其特点是KEEP 什么是KE
  • 在php中组合两个(或更多..)多维数组

    我有一个使用不同参数运行多次的查询 我正在使用 xml 解析器将结果返回给 jQuery 我似乎无法找到一种方法来组合第一个 节点 上的结果而不覆盖第一个条目 简化的代码示例 temp1 returnArray 0 temp2 return
  • 如何像 DevTools 那样突出显示 Chrome 扩展中的元素?

    我有兴趣创建一个 Chrome 扩展程序 它列出了网页上菜单中具有 id 属性的所有元素 然后 当用户单击菜单中的元素时 网页上相应的元素就会突出显示 当您右键单击并检查某个元素时 我看到 Chrome 开发工具会突出显示该元素 我很好奇是
  • uint32_t 和 uint8_t[4] 未定义行为的联合? [复制]

    这个问题在这里已经有答案了 在评论中这个答案 https stackoverflow com a 8568531 1025391据说使用如下联合将整数分割成字节将是未定义的行为 该位置给出的代码与此相似但不完全相同 如果我更改了代码的未定义
  • 使用 SIS 执行 postgres db init 的批处理文件给出权限被拒绝

    跟随我的上一个问题 https stackoverflow com questions 30924913 how to install postgres with nsis with all parameters我现在尝试通过 NSIS 代
  • 将 StackNavigator 与 TabNavigator 集成

    如何组合 StackNavigator 和 TabNavigator 我的以下代码有效 索引 android js import React Component from react import AppRegistry Text View
  • SQL Server 错误:“SQL Server 子查询返回超过 1 个值”

    子查询返回超过 1 个值 当子查询跟在 gt 后面或子查询用作表达式时 这是不允许的 我在调试以下代码时收到此有线错误消息 WHEN NOT EXISTS SELECT 1 FROM defs WITH NOLOCK WHERE defau
  • Neo4J 数据库大小/缩小

    我们有一个包含约 1000 万个节点和约 3 亿个关系的 Neo4j 数据库 数据库已增长至约 80 Gig 日常工作会删除旧数据并添加新数据 因此节点和关系的大约数量保持相当恒定 然而 db 文件的物理文件大小不断增长 例如 relati
  • 具有多核 CPU 的 JAX pmap

    使用多核CPU的正确方法是什么jax pmap 以下示例在 CPU 核心后端上为 SPMD 创建环境变量 测试 JAX 是否识别设备 并尝试设备锁定 import os os environ XLA FLAGS xla force host
  • 使用 XUnit 进行 .Net Core DynamodDB 单元测试

    使用C net core 2 0 dynamo db 我有我的 Web api 它与我的 dynamo db 数据库交互 具有 Get 和 Post 方法 方法示例 HttpGet api data public async Task
  • 使用 JAXB 编译多个包含同一元素的重复定义的 XSD

    问题 如何使 xjc Jaxb 为同一命名空间中包含重复元素定义的多个模式生成正确的 java 类 信息 我有三个 xsd 模式 A B 和 C 它们都具有相同的目标命名空间 它们都是给我的 3 个 shemas 我无论如何都不允许以任何方
  • 如何使用 setBorder 和 JFrame 在 Java 中为矩形添加边框

    我正在尝试添加边框Rectangle元素 由于某种原因它无法工作 是否与JFrame 我可以设置我的整个JFrame有边界 但找不到setBorder和我的矩形 这是我的代码 package trivia import java awt C
  • 在 Mocha 测试中使用 for 循环

    我是摩卡新手 我想尝试使用 for 循环来创建测试用例 我想测试我制作的一个函数 该函数接受标准 12 小时时间的输入 并将其输出为 24 小时军用时间 这就是它的样子 exports main function time var hr p
  • 相邻的 svg:多边形边不相交

    我正在使用彼此相邻的多边形绘制条形图 如下所示 如果仔细观察 每个多边形之间都有空白 放大 我正在努力阻止这种情况发生 我发现了 SVGshape rendering https developer mozilla org en US do