使 SVG 路径像一条平滑的线,而不是参差不齐

2023-11-25

那么在我创建的项目中河流线 from pathes。并且由于我的这种大笔划宽度这个很ragged:

enter image description here

我已经四处寻找了。但我唯一发现的是stroke-linejoin: round;。正如你在这里看到的:

enter image description here

好多了,但我仍然不满意。

有什么办法可以得到一条真正平滑的线吗?或者说也有一个偶数“圆角”线连接?


一个有趣的方向是利用 d3.svg.line 从 geoJSON 要素的坐标生成路径,此时您将能够使用 D3 的插值方法。

See D3js-Topojson:如何从像素化曲线移动到贝塞尔曲线? and 地理数据到 d3.svg.line 插值作者:E.米克斯,以及带有 topojson 的脆边? .


Edit:有一个线平滑的最小独立案例研究您可以通过其关联的 gist 的 git 存储库进行 fork。 d3.svg.line 的想法以及插值y线条平滑的坐标来自 E.Meeks。 E.米克斯解释了他的方法here.


编辑2和解决方案:Í 突然想起了 topojson 是在哪里动态转换为 geojson 的。执行以下操作,您可以使用 topojson 文件并最终获得贝塞尔曲线,并根据您选择的外推法。以下将起作用:

d3.json("./world-110m.json", function(data){
    console.log(data)
    var geojson = topojson.feature(data, data.objects.countries);
    var newJson = newgeoson(geojson);
    console.log(JSON.stringify(newJson))

    d3.select("body").append("svg").attr("id","world")
      .selectAll("path")
        .data(newJson)
      .enter()
        .append("path")
        .style("stroke-width", 1)
        .style("stroke", "black")
        .style("fill-opacity", .5)
        .attr("d", d3.svg.line()
          .x(function(d){ return d[0] })
          .y(function(d){ return d[1] }).interpolate("cardinal"))
        .style("fill", "#7fc97f");
})

现场演示:最小 d3js 线平滑,topojson 版本

enter image description here

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

使 SVG 路径像一条平滑的线,而不是参差不齐 的相关文章

  • 黑白 PNG 转 SVG

    我有一个河流 土地掩码来区分土地与河流 湖泊 该文件的大小为 W 43 200x H 21 600 由于 RAM 立即填满 因此无法打开该文件 我已将文件分成 3600 3600 块 它们可以正常打开 然而 我试图在谷歌地图中绘制陆地上的文
  • 在 SVG 中绘制 DOM 对象时如何在 Canvas 中使用 Google 字体?

    根据 Mozilla 的文档 您可以在 Canvas 上绘制复杂的 HTML 例如this https developer mozilla org en US docs Web API Canvas API Drawing DOM obje
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就
  • D3.js分组条形图

    I am making a bar chart using D3 js like this source statcan gc ca http www statcan gc ca pub 12 593 x 2007001 figures f
  • 无法在 Firefox 中显示我的 svg 图像?

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

    我在构建 SVG 地图时遇到问题 触发的功能 g 上的 onmouseover 不起作用 我当时用的 window onmouseover function e console log e target className 查看类名是否有问
  • 在iframe中显示本地htm文件?

    我使用 MailBee NET 对象以 htm 格式在本地计算机上保存一些电子邮件 例如 使用服务器上的电子邮件 messageID 为每封电子邮件创建一个单独的文件夹 D 电子邮件 GmailId1380ec660e0e656a doc
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 标签中的路径显示

    NET 中有没有自动修剪路径字符串的方法 例如 C Documents and Settings nick My Documents Tests demo data demo data emx becomes C Documents dem
  • C# 获取资源文件夹路径

    我的项目中的一些资源很好 并且使用字符串路径可以正常工作 但是如果我将项目移动到另一个目录或另一台计算机 它将停止工作 请我需要在字符串变量中获取项目资源文件夹的路径 像这样的东西 C Users User1 Documents
  • Azure 和直播

    我正在尝试使用 Azure 制作实时视频流 但我真的不知道应该先尝试什么 首先 有一个网站 上面有最新版本的 Flowplayer 现在我需要知道如何将网络摄像头的视频流传输到 Azure 我需要什么样的软件 我正在尝试使用 Express
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 无法在 Windows 10 上更新 pip 的 PATH 变量

    我知道有数千个类似的主题 但我的 pip 命令突然停止工作 尽管我进行了所有研究 但我无法弄清楚原因 自从我上次使用 pip 以来已经有一段时间了 令人惊讶的是我的计算机不再识别该命令 我重新安装了pip 提示告诉我PATH变量没有正确更新
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • Safari 滚动条和 SVG

    问题 Safari 无法正常工作 而是使用滚动条渲染我的 SVG 图像 问题的改进版本 如何填充设定的宽度并根据 Safari 中的宽高比计算高度 感谢普罗格兹 相关代码 SVG File viewBox 0 0 800 800 未指定高度
  • 使用 -T 开关运行时 $ENV{ENV} 不安全

    当我尝试最后一个例子时perlfaq5 如何计算文件中的行数 http perldoc perl org perlfaq5 html How do I count the number of lines in a file 我收到一条错误消
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

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

    我安装了 simplecov gem 并添加了 require simplecov SimpleCov start 到spec helper rb文件 现在如果我在some file spec rb文件中包含spec helper rb并尝

随机推荐

  • 在 C++ 中获取环 0 模式 (Windows)

    如何在 Windows 7 或 Vista 中为我的进程获取 Ring 0 操作模式 允许任意代码在环 0 中运行违反了基本的操作系统安全原则 只有OS内核和设备驱动程序运行在ring 0中 如果要编写ring 0代码 请编写Windows
  • 计算 R 中唯一的分类变量对[重复]

    这个问题在这里已经有答案了 如果我有这个数据 One lt c rep X 4 rep Y 3 rep Z 2 Two lt c rep A 2 rep B 6 rep C 1 df lt data frame One Two One Tw
  • 将策略定义与执行分离时了解 Polly 策略的语义

    With Polly我希望在两个不同的语句中定义我的策略并执行该策略 如下所示 Policy definition var policy Policy HandleResult
  • 解决 paramiko 上的线程清理问题

    我有一个使用 paramiko 的自动化流程 但出现以下错误 Exception in thread Thread 1 most likely raised during interpreter shutdown
  • 如何对单元格的元素进行排序?

    我有一个像这样的细胞 A 1 1 1 2 3 A 2 1 4 2 A 3 1 3 2 5 4 6 A N 1 10 2 5 7 N is very large 换句话说 这个单元格的每个元素的列数是不同的 没有明确的模式 现在 我想根据位于
  • 如何在有向图中找到最小顶点集,以便可以到达所有其他顶点

    给定一个有向图 我需要找到可以到达所有其他顶点的最小顶点集 因此 该函数的结果应该是最小数量的顶点 从该顶点可以通过有向边到达所有其他顶点 可能的最大结果是如果没有边 则将返回所有节点 如果图中存在循环 则对于每个循环 选择一个节点 哪一个
  • 撇号被翻译为“tm”。哪个 PHP 函数会将其显示为 '?某物_解码?

    我正在抓取一些推文并将其打印在我的网站上 并且大写撇号被呈现为 tm 不是很好 我应该通过哪个 php 函数运行字符串才能让这些奇怪的字符显示为更接近 我在 Chrome 中遇到了这个问题 添加一个 到 头部 部分修复它
  • 正确的 C 预处理器宏无操作

    对于调试日志记录 我经常看到并使用类似的东西 ifdef DEBUG define DLOG fmt args printf s d fmt FILE LINE args else define DLOG fmt args endif 但在
  • Xamarin 中与分辨率相关的字体大小

    我是 Xamarin 新手 正在为我的第一个应用程序而苦苦挣扎 我有一张图像 上面有一个入口视图 这样我就创建了一个自定义条目背景 不过 条目的字体大小不会随着具有不同分辨率的不同设备而缩放 当我调整设备 A 的字体大小并现在在设备 B 上
  • 如何使用用户定义的类对象作为networkx节点?

    类点定义为 其中还有一些方法 属性和东西 但这只是最小的部分 class point def init self x y self x x self y y 于是 我看到了这个问题 但是当我尝试应用它时 它返回一个错误 G nx Graph
  • Oracle SQL 插入多行并返回一些内容

    在 Oracle 中 可以通过执行如下查询来插入多行 INSERT ALL INTO mytable column1 column2 column3 VALUES val1 1 val1 2 val1 3 INTO mytable colu
  • 使用 Hibernate PreInsertEventListener 更改实体

    我正在使用 Hibernate 4 1 尝试调用 PreInsertEventListener 来更新实体 然后再将其插入数据库 基于此处的文章 http anshuiitk blogspot ca 2010 11 hibernate pr
  • 如何在两个HTML页面之间交换变量?

    我有两个 HTML 页面 example1 html and example2 html 我如何传递变量example1 html to example2 html使用查询字符串 并检索该变量example2 html不使用任何服务器端代码
  • 元素不会保持居中,尤其是在调整屏幕大小时

    我的问题是我无法水平居中三角形指针 好吧 对于某些窗口大小 我可以将指针居中 但是当我缩小或扩展窗口时 它会再次将其放置在错误的位置 我缺少什么 body background 333333 container width 98 heigh
  • 如何从 Symfony2 config.yml 读取配置设置?

    我在 config yml 文件中添加了一个设置 如下所示 app config contact email email protected 对于我的一生 我不知道如何将其读入变量 我在我的一个控制器中尝试了类似的操作 recipient
  • 元素之间的间距

    我是 CSS 和 HTML 的完全初学者 我正在构建我的第一个基本培训页面 我现在想做的是在两个元素之间留出间距而不使用 br 目前我正在使用这个 formClear clear left height 25px 它适用于间距 但你这是正确
  • 更多 Pythonic/Pandaic 方法来循环 pandas 系列

    这很可能是非常基本的东西 但我无法弄清楚 假设我有一个这样的系列 s1 pd Series 1 1 1 2 2 2 3 3 3 4 4 4 如何在无需恢复使用 for 循环的情况下对该系列的子系列进行操作 例如 假设我想将其变成一个包含四个
  • 使用 papa parse 解析大型 csv 文件

    我正在尝试加载一个大约 100k 行的文件 到目前为止浏览器已经崩溃 本地 我上网查了一下 发现 Papa Parse 似乎可以处理大文件 现在加载到文本区域的时间减少到大约 3 4 分钟 加载文件后 我想要执行更多 jQuery 来执行计
  • 从 javascript 重定向到操作

    我有一个 MVC4 项目 在客户端我需要重定向到特定的操作方法 我已阅读以下帖子如何从 JavaScript 方法重定向到操作 下面有一条关于使用的评论 window location href controller action para
  • 使 SVG 路径像一条平滑的线,而不是参差不齐

    那么在我创建的项目中河流线 from pathes 并且由于我的这种大笔划宽度这个很ragged 我已经四处寻找了 但我唯一发现的是stroke linejoin round 正如你在这里看到的 好多了 但我仍然不满意 有什么办法可以得到一