1、获取多边形的点(n是几边形,w是宽,h是高)
const polygon = (n: number, w: number, h: number) => {
let deg = 2 * Math.PI / n
let points = []
for (let i = 0; i < n; ++i) {
let theta = deg * i
let x = 0.5 * Math.cos(theta) + 0.5
let y = 0.5 * Math.sin(theta) + 0.5
points.push([w * x, h * y])
}
return points
}
2、画svg的path的线(numbers为上述多边形输出的点)
const _resetNumbers = () => {
let str = ‘‘
for (let i = 0; i < numbers.length; i++) {
let salt = ‘L‘
if (i === 0) {
salt = ‘M‘
}
str += salt + ‘ ‘ + numbers[i][0] + ‘ ‘ + numbers[i][1]
}
str += ‘ Z‘
return str
}
3、html里呈现
<svg width="100" height="200">
<path
d={_resetNumbers()}
stroke="black"
fill="transparent"/>
</svg>
原文:https://www.cnblogs.com/huangqiming/p/13560607.html