JS ellipse 轉(zhuǎn) PathData
繪制Path
function ellipse2path(cx, cy, rx, ry, degree) { //cx cy:圓心 //rx ry:x y 軸長 //degree:度數(shù),順時針方向為正 //思路:求出直線與橢圓的交點,然后從一端繪制到另一端 //非數(shù)值單位計算,如當(dāng)寬度像100%則移除 if (isNaN(cx - cy + rx - ry)) return; //逆時針繪制 var radian = (Math.PI * 2 / 360) * degree var x1 = cx + rx * Math.cos(radian) var y1 = cx + rx * Math.sin(radian) //計算機Y軸正向向下 var x2_relative = 2 * rx * Math.cos(radian) var y2_relative = -2 * rx * Math.sin(radian) var path = 'M' + x1 + ' ' + y1 + 'a' + rx + ' ' + ry + ' ' + degree + ' 1 1 ' + x2_relative + ' ' + y2_relative + ' ' + 'a' + rx + ' ' + ry + ' ' + degree + ' 1 1 ' + -1 * x2_relative + ' ' + -1 * y2_relative + ' ' + 'z'; return path; }

浙公網(wǎng)安備 33010602011771號