SVG.js Marker标记和自定义标签

本文介绍SVG.js中SVG.Marker的使用方法,包括如何在SVG元素上添加开始、中间和结束标记,并演示了如何创建自定义标记。此外,还介绍了SVG.Bare用于添加自定义标签的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SVG.Marker 添加标记

SVG.Marker 标记可以被添加到一个线,折线的各点,多边形和路径。有三种类型的标记:开始,中间和结束。如果开始表示第一个点,则结束中间的最后一点和中间点。
var draw = SVG('svg1').size(300, 300);
var line = draw.line(0, 0, 200, 150);
line.stroke('blue').move(20, 20);
//创建marker,声明时指定宽度和高度,在标记处添加的形状超出部分会隐藏
var marker1 = draw.marker(10, 10, function (add) {
    add.rect(20, 20);
});
//添加到直线
line.marker('start', marker1);
//获取引用
var ref1 = line.reference('marker-start');
console.info(ref1);
//修改标记的大小,size()/width()/height()
ref1.size(20, 20);
//更改标记内容
marker1.update(function (add) {
    add.circle(10).fill('#f09');
});

2.实例

var draw = SVG('svg1').size(300, 300);
//SVG.Marker 标记可以被添加到一个线,折线的各点,多边形和路径。有三种类型的标记:开始,中间和结束。如果开始表示第一个点,则结束中间的最后一点和中间点。
var path = draw.path('M0 0 A50 50 0 0 1 50 50 A50 50 0 0 0 100 100');
path.fill('none').move(20, 20).stroke({ width: 1, color: '#ccc' });
path.marker('start', 10, 10, function (add) {
    add.circle(10).fill('#f06');
});
path.marker('mid', 10, 10, function (add) {
    add.rect(5, 10).cx(5).fill('#ccc');
});
path.marker('end',20,20,function(add){
    add.circle(6).center(4,5);
    add.circle(6).center(4,15);
    add.circle(6).center(12,10);
    this.fill('#0f9');
})

二、SVG.Bare 添加自定义标签

//SVG.Bare 添加自定义标签,不会在页面中显示
//element() 创建标签
//var element=draw.element('title');
var element = draw.element('symbol', SVG.Parent);// <symbol id="SvgjsSymbol1008">测试标签</symbol>
//words() 设置标签内容
element.words('测试标签');// <title id="SvgjsTitle1008">测试标签</title>

更多:

SVG.js Mask覆盖和ClipPath裁剪

SVG.js 图案使用和use引用

SVG.js 颜色渐变使用

在G6中使用自定义标记marker)可以通过以下步骤实现: 1. **创建自定义标记**: 首先,你需要创建一个自定义标记标记通常是一个SVG路径。你可以使用在线SVG编辑器来创建你想要的标记路径。 2. **注册自定义标记**: 使用`G6.registerMarker`方法将自定义标记注册到G6中。你需要为标记指定一个名称,并提供SVG路径。 3. **在节点或边中使用自定义标记**: 在定义节点或边的样式时,使用`marker`属性来引用你注册的自定义标记。 以下是一个具体的示例: ```javascript // 1. 创建自定义标记 const customMarkerPath = 'M 0,0 L 10,5 L 0,10 L 4,5 Z'; // 2. 注册自定义标记 G6.registerMarker('custom-marker', { path: customMarkerPath, width: 10, height: 10, fill: '#333', stroke: '#666', lineWidth: 1 }); // 3. 在节点或边中使用自定义标记 const data = { nodes: [{ id: 'node1', x: 100, y: 100, label: 'Node 1' }, { id: 'node2', x: 300, y: 100, label: 'Node 2' }], edges: [{ source: 'node1', target: 'node2', label: 'Custom Edge', style: { endArrow: { path: 'custom-marker', d: 10 } } }] }; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, defaultNode: { shape: 'circle', size: [50], color: '#5B8FF9', style: { fill: '#C6E5FF' } }, defaultEdge: { style: { stroke: '#e2e2e2' } } }); graph.data(data); graph.render(); ``` 在这个示例中,我们首先创建了一个自定义标记路径,然后使用`G6.registerMarker`方法将其注册为`custom-marker`。接着,在边的样式中,我们通过`endArrow`属性引用了这个自定义标记
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值