【发布时间】:2017-05-24 13:10:07
【问题描述】:
我已经使用开始和结束角度创建了 SVG 弧。我需要计算该弧的周长吗?如何计算。
function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
var angleInRadians = (angleInDegrees-90) * Math.PI / 180.0;
return {
x: centerX + (radius * Math.cos(angleInRadians)),
y: centerY + (radius * Math.sin(angleInRadians))
};
}
function describeArc(x, y, radius, startAngle, endAngle){
var start = polarToCartesian(x, y, radius, endAngle);
var end = polarToCartesian(x, y, radius, startAngle);
var largeArcFlag = endAngle - startAngle <= 180 ? "0" : "1";
var d = [
"M", start.x, start.y,
"A", radius, radius, 0, largeArcFlag, 0, end.x, end.y
].join(" ");
return d;
}
window.onload = function() {
document.getElementById("circle").setAttribute("d", describeArc(150, 150, 100, 0, 270));
};
示例链接:https://jsfiddle.net/ndmsqmao/
使用这个我已经渲染了圆圈...... 如果这是一个完整的圆圈,则意味着我可以使用以下公式找到圆周
周长 = 2 * Math.PI * r
但这不是一个完整的循环。那你能分享一下,如何找到周长?
【问题讨论】:
-
r * 角度(弧度)
-
@JaromandaX 能否提供示例或代码?
-
任何高中数学课本
-
(lol) 你学过吗?
-
没有。我午餐吃了我的数学课本。似乎我通过渗透获得了一些知识
标签: javascript svg