首先我们要明白如何在svg中进行箭头的绘制:

先写一对<defs>,里面再写一对<marker>,其中marker的属性意义为:

viewBox 坐标系的区域
refX, refY 在 viewBox 内的基准点,绘制时此点在直线端点上(要注意大小写)
markerUnits 标识大小的基准,有两个值:strokeWidth(线的宽度)和userSpaceOnUse(图形最前端的大小)
markerWidth, markerHeight 标识的大小
orient 绘制方向,可设定为:auto(自动确认方向)和 角度值
id 标识的id号

然后,我们利用d3.js来进行箭头的绘制就清楚多了:

//添加defs标签
var defs = svg.append("defs");
//添加marker标签及其属性
var arrowMarker = defs.append("marker").attr("id","arrow").attr("markerUnits","strokeWidth").attr("markerWidth",12).attr("markerHeight",12).attr("viewBox","0 0 12 12").attr("refX",6).attr("refY",6).attr("orient","auto")
//绘制直线箭头
var arrow_path = "M2,2 L10,6 L2,10 L6,6 L2,2";
arrowMarker.append("path").attr("d",arrow_path).attr("fill","#000")
//绘制直线
var line = svg.append("line").attr("x1",50).attr("y1",50).attr("x2",200).attr("y2",400).attr("stroke","red").attr("stroke-width",2).attr("marker-start","url(#arrow)").attr("marker-end","url(#arrow)")
//绘制曲线箭头
var curve_path = "M20,70 T80,100 T160,80 T200,90";
var curve = svg.append("path").attr("d",curve_path).attr("fill","white").attr("stroke","red").attr("stroke-width",2).attr("marker-start","url(#arrow)").attr("marker-mid","url(#arrow)").attr("marker-end","url(#arrow)");

在不同的位置绘制的属性如下:

  • marker-start :路径起点处
  • marker-mid:路径中间端点处(必须是 path 中间出现的点)
  • marker-end :路径终点处

绘制结果如下:

d3.js——箭头的绘制相关推荐

  1. D3.js 使用geojson绘制地图

    D3.js 使用geojson绘制地图 前言 初始化项目 获取数据并绘图 http请求数据 定义坐标并绘图 总结 前言 利用geojson文件或者类似包含对象属性和坐标(只要坐标是在统一参考系下)的文 ...

  2. d3.js 7×6 日历绘制 附加单格背景

    d3.js 7×6 日历绘制 附加单格背景 先来个效果图 减少错进者的时间 时间对于我们来说太宝贵了 先来个效果图 减少错进者的时间 时间对于我们来说太宝贵了 ** 第一次写文章 不喜欢请喷我 您的支 ...

  3. d3.js折线图_学习使用D3.js创建折线图

    d3.js折线图 by Sohaib Nehal 通过Sohaib Nehal 学习使用D3.js创建折线图 (Learn to create a line chart using D3.js) 使用 ...

  4. D3.js + Canvas 绘制组织结构图

    D3.js + Canvas 绘制组织结构图 使用 D3.js 默认的 svg 渲染 D3默认的树状图画图使用的是svg, 比如这个来自D3作者的例子: https://bl.ocks.org/mbo ...

  5. 【D3.js数据可视化实战】--(3)桑基图(sankey)的绘制

    什么是桑基图 用D3绘制简单的Sankey图 添加文字 圆形节点 添加交互效果 注:本文未经作者允许严禁转载和演绎 1 什么是桑基图? 桑基图是流图 (flow diagram )的一种,用来描述能量 ...

  6. D3.js绘制 颜色:RGB、HSL和插值 (V3版本)

    转载地址:D3.js绘制 颜色:RGB.HSL和插值 (V3版本) 如果要计算介于两个颜色之间的颜色,需要用到插值(Interpolation).D3提供了d3.intrerpolateRgb()来处 ...

  7. 【 D3.js 入门系列 --- 10 】 地图的绘制

    地图的制作在 D3 中可以说是最重要的一环.因为在进行数据可视化时,很多情况都会和地图联系在一起,如中国各省的人口多少,GDP多少等,都可以和地图联系在一起. D3 中制作地图所需要的文件问 JSON ...

  8. 【D3.js开发入门:绘制图表】静态图表

    什么是 D3.js? D3.js是用于 HTML 和 SVG 实现的 JavaScript 可视化库.基于数据操作文档的 JavaScript 库. 说到D3不得不提到Echarts,Echarts和 ...

  9. d3js mysql_使用D3.js绘制地图并打点

    本篇简单介绍一下使用D3.js绘制地图,并更具经纬度在地图打点.最后根据点生成voronoi图及其三角网. 下载地图geoJson文件 去网上下载要绘制地图的geoJson文件. 使用d3.json( ...

最新文章

  1. V$session表的妙用
  2. Linux下Tomcat重新启动以及日志
  3. POPSpring动画参数详解
  4. 兰州2021高考一诊成绩查询,2021兰州中考"一诊"成绩分析结果查询
  5. 【算法题1】上台阶问题
  6. IPv6下CDN和网络的最佳实践
  7. php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)
  8. 更改python默认路径_Linux下多版本python共存时,默认执行路径修改方法
  9. CF1037H Security(SAM)
  10. 工业以太网在工业领域的应用特点详解
  11. c++ssh连接_多台WIN10之间的SSH免密登录
  12. 计算机专业解说,计算机专业解说.ppt
  13. 软考高级 真题 2017年下半年 信息系统项目管理师 论文
  14. 【每日随笔】飞书云文档使用 ( 注册飞书云文档账号 | 创建云文档 | 分享云文档 )
  15. 国内镜像站——国外资源的代理站点
  16. 各大互联网大厂JAVA实习招聘岗位要求
  17. linux文件管理命令ppt,linux命令以及文件管理.ppt
  18. 2018秦皇岛ccpc赛后总结
  19. 第15周项目二—洗牌(1)
  20. TensorFlow 2 和 Keras 高级深度学习:11~13

热门文章

  1. 农村环境保护之平时作业三
  2. xie wen ben ri zhi
  3. 计算机考证可直接考二级吗
  4. java单根结构_Java语言程序设计中的单根结构
  5. 图片尺寸px怎么转换成厘米?在线图片尺寸换算工具怎么用?
  6. HTML5期末大作业:网站——响应式网络游戏官网HTML+CSS+JavaScript ~ 学生HTML个人网页作业作品下载 ~ web课程设计网页规划与设计 ~大学生个人网站作业模板 ~简单个人网页
  7. 《绝地求生》玩家排名预测
  8. 拯救BUG 10五笔输入法Shift键切换中英文问题
  9. mysql教程我爱自学网_6个相见恨晚的自学网站,每个都是精品,送给正在努力拼搏的你们...
  10. MIXLAB_NASA_TICKET生成