① d - path路径标签的 d 属性,用于描述路径走向,是一系列路径指令加数据的集合,字符型
② fill - 填充色,基于路径所包围的区域,缺省时默认用黑色填充,字符型
③ stroke - 路径描边色即线条颜色,缺省时路径为透明不可见,字符型
④ stroke-width - 路径线条厚度,缺省时默认1(像素),数值
⑤ stroke-linecap - 路径起始、终止点线帽样式,字符型,可选值 butt(缺省)、round(圆)、square(方块)
⑥ stroke-linejoin - 路径拐角样式,字符型,缺省值 bevel,可选值 miter(斜接)、round(圆)
关于 path 路径 d 属性
d 属性是 <path> 标签的路径描述,属性值的第一个指令是 M 或 m 表示将画笔移动(move)到某个坐标点,然后根据需要使用相应指令绘制路径。d属性的指令有:
① 第6行,声明若干变量,其中:tt 是多边形外角总数、r 为半径、angle 为角平均值、d 是d属性字串变量;
② 第7 - 16行,用一个for循环按从小到大遍历所有的角,先将角转换成弧度(第8行),再用cos和sin计算出角所在的点坐标值(第9、10行),里面的 200 是svg中心点坐标(加上它是因为SVG坐标起始于左上角);接着,用一个if语句判断循环是否为首次动作,是的话,指令使用 M 带上xy值,否则指令使用 L 带上xy值。这些值的获取均不断加到 d 变量中(d += ...);最后,将路径画出来(第17行),注意这里在d变量值基础上加一个 z 表示路径封闭,否则会有缺口,z大小写都是封闭没有区别。
<svg id="mysvg" width="400" height="400">
<script type="module">
import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.js';
var dr = Dr.dr('mysvg');
var tt = 8, r = 180, angle = 360 / tt, d = '';
for(var i = 0; i < tt; i ++) {
var rad = (Math.PI / 180)* i * angle;
var x = 200 + r * Math.cos(rad),
y = 200 + r * Math.sin(rad);
if(i < 1) {
d += 'M' + x + ' ' + y;
} else {
d += ' L' + x + ' ' + y;
}
}
dr.path(d + 'z','none','gray',8);
</script>