Use SVG's <path>
to generate circle, annulus, circular sector or annular sector, and return the d
attribute value.
npm i --save svg-arc
import arc from 'svg-arc';
arc({x, y, R, r, start, end})
arguments | type | default | description |
---|---|---|---|
x | Number | 0 | The x-coordinate of the center of the circle |
y | Number | 0 | The y-coordinate of the center of the circle |
R | Number | 0 | Outside Radius |
r | Number | 0 | Inside Radius |
start | Number | - | The starting angle, 0 ~360 |
end | Number | - | The ending angle, 0 ~360 |
import arc from 'svg-arc';
// create SVG
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('viewBox', '0 0 300 300');
// create path
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
path.setAttribute('fill', '#ddd');
svg.appendChild(path);
// set path
const d = arc({
x: 150,
y: 150,
R: 100,
r: 80,
start: 100,
end: 200,
});
path.setAttribute('d', d);
// When drawing a annulus, the attribute value of 'fill-rule' must be set to 'evenodd', otherwise the color cannot be filled correctly.
path.setAttribute('fill-rule', 'evenodd');
arc({
x: 150,
y: 150,
r: 100,
})
arc({
x: 150,
y: 150,
R: 100,
r: 80,
})
path.setAttribute('fill-rule', 'evenodd');
When drawing a annulus, the attribute value of fill-rule
must be set to evenodd
, otherwise the color cannot be filled correctly.
arc({
x: 150,
y: 150,
r: 100,
start: 100,
end: 360,
})
arc({
x: 150,
y: 150,
R: 100,
r: 80,
start: 300,
end: 150,
})
Copyright (c) 2020-present, Z8264