搜索
首页web前端H5教程svg中<marker>元素的使用及marker属性的介绍

使用SVG绘制的图形是箭头, 可以在中定义好再去重用,但是你每次应用的时候都需要对其移动或旋转。直接用一个元素的话会方便很多。

元素

marker是一种可以连结一个或多个path、line、polyline、或polygon的顶点的标志类型。最常见的用例是绘制箭头或在输出结果的线上的标记一个(polymarker)图形。
使用元素创建一个marker,以及其相关属性。通常我们把marker放在元素中,然后在其它地方对其进行引用。下面我们通过一个简单的实例来学习。

<svg width="600px" height="100px"> 
    <defs> 
    <marker id="arrow" markerWidth="10" markerHeight="10" refx="0" refy="3" orient="auto" markerUnits="strokeWidth"> <path d="M0,0 L0,6 L9,3 z" fill="#f00" /> 
    </marker>
    </defs> 
    <line x1="50" y1="50" x2="250" y2="50" stroke="#000" stroke-width="5" marker-end="url(#arrow)" />
</svg>

marker的属性

markerWidth和markerHeight属性定义了marker视窗的宽度和高度。

上面的实例中我把markerWidth和markerHeight都设置为10px。path中绘制出的三角形需要适应9px x 6px的面积,所以我也可以把markerWidth设置为9,然互markerHeight设置为6。这是marker可以接受的最小尺寸,任何小于这个的尺寸都会导致图形被裁剪。
接下来的两个属性,refX和refY,指的是图形元素和marker连接的位置坐标。我们还给背后的场景应用了一个变换,来移动marker,与之对齐。

下一个属性,orient,这个属性是我为什么在转换line的方向时,不需要调整marker的原因。它接受一个auto值,或者一个角度值,这个值决定了marker是否要旋转,在与其它内容连接的时候。

auto这个值表示marker会随着应用的元素一起旋转。45deg这个值则表示marker的方向一直保持45deg,不会随着连接的元素一起旋转。大多数时候这个值都是设置为auto的。

最后一个属性是markerUNits,用于确定marker是否进行缩放。它定义了markerWidth和markerHeight,以及marker的内容本身的坐标系统。

它接受两个值,strokeWidth和userSpaceOnUse。默认值是strokeWidth,这也是大家大多数情况下会设置的值,因为它允许你的marker随着它连接的line进行缩放。

strokeWidth:坐标系统中的marker值和当前描边宽度的单位是相同的尺寸。也就是说strokeWidth这个值允许你的marker缩放。
userSpaceOnUse: marker的值是当前用户坐标系统的值。也就是说如果你的marker是一个半径为10px的圆,它就一直都是10px的半径,不受连接的元素的影响。

Marker特性——在元素中引用marker

marker-end="url(#arrow)”

给line、path、polyline、polygon这些基础图形应用marker一共有四种方法:

  • marker-start=”url(#marker-id)”

  • marker-mid=”url(#marker-id)”

  • marker-end=”url(#marker-id)”

  • marker=”url(#marker-id)”

相关文章推荐:

svg如何实现坐标系统变换(附代码)

在react中使用svg的各种方法总结(附代码)

以上是svg中<marker>元素的使用及marker属性的介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
聊聊如何利用 SVG 实现图片马赛克效果聊聊如何利用 SVG 实现图片马赛克效果Sep 01, 2022 am 11:05 AM

不借助 Javascript,如何利用 SVG 实现图片马赛克效果?下面本篇文章就来带大家详细了解一下,希望对大家有所帮助!

svg怎么转jpg格式svg怎么转jpg格式Nov 24, 2023 am 09:50 AM

svg可以通过使用图像处理软件、使用在线转换工具和使用Python图像处理库的方法来转jpg格式。详细介绍:1、图像处理软件包括Adobe Illustrator、Inkscape和GIMP;2、在线转换工具包括CloudConvert、Zamzar、Online Convert等;3、Python图像处理库等等。

深入浅析vue3+vite中怎么使用svg图标深入浅析vue3+vite中怎么使用svg图标Apr 28, 2022 am 10:48 AM

svg图片在项目中使用的非常广泛,下面本篇文章带大家介绍一下如何在vue3 + vite 中使用svg图标,希望对大家有所帮助!

VUE3入门教程:使用Vue.js插件玩转SVGVUE3入门教程:使用Vue.js插件玩转SVGJun 16, 2023 am 09:48 AM

随着现代Web前端开发的不断发展,越来越多的技术被广泛应用于实际开发中。其中,Vue.js是目前最为流行的JavaScript框架之一,它基于MVVM模式,提供了丰富的API和组件库,使得开发响应式、可复用、高效的Web应用变得更加容易。而目前最新的Vue.js3版本相较于旧版,又有着更好的性能和更丰富的特性,引起了广泛的关注和研究。本文将会为大家介绍一种

在HTML5画布上绘制SVG文件在HTML5画布上绘制SVG文件Sep 15, 2023 pm 03:09 PM

要在画布元素上绘制HTMLImageElements,请使用drawImage()方法。此方法使用src=”mySVG.svg”定义一个Image变量,并在加载时使用drawImage。varmyImg=newImage();myImg.onload=function(){&nbsp;&nbsp;ctx.drawImage(myImg,0,0);}img.src="http://www.example.com/files/sample.svg";

vue3+vue-cli4中怎么使用svgvue3+vue-cli4中怎么使用svgMay 11, 2023 pm 05:58 PM

一、安装svg-sprite-loadernpminstallsvg-sprite-loader--save-dev二、在src/components/svgIcon下新建组件index.vueimport{computed}from"@vue/reactivity";exportdefault{name:"baseSvgIcon",props:{iconClass:{type:String},className:{type:String},},setup

详解用SVG给 favicon 添加标识详解用SVG给 favicon 添加标识Sep 07, 2022 am 10:30 AM

怎么使用SVG给 favicon 添加标识?下面本篇文章给大家介绍一下使用 SVG 生成带标识的 favicon的方法,希望对大家有所帮助!

svg是什么格式svg是什么格式Dec 29, 2020 pm 03:59 PM

SVG英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形,是一种图像文件格式;SVG还是一种用XML定义的语言,可以用来描述二维矢量及矢量或栅格图形。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。