Javascript 用给定半径计算周长
我试图通过从绘制圆的给定代码中检索已定义的半径来计算和显示周长。是我输入公式的方式不对,还是需要在同一脚本部分Javascript 用给定半径计算周长,javascript,geometry,Javascript,Geometry,我试图通过从绘制圆的给定代码中检索已定义的半径来计算和显示周长。是我输入公式的方式不对,还是需要在同一脚本部分 函数绘图(){ var canvas=document.getElementById('circle'); if(canvas.getContext){ var ctx=canvas.getContext('2d'); var X=画布宽度/2; 变量Y=画布高度/2; var R=45; ctx.beginPath(); 弧(X,Y,R,0,2*Math.PI,false); ct
函数绘图(){
var canvas=document.getElementById('circle');
if(canvas.getContext){
var ctx=canvas.getContext('2d');
var X=画布宽度/2;
变量Y=画布高度/2;
var R=45;
ctx.beginPath();
弧(X,Y,R,0,2*Math.PI,false);
ctx.lineWidth=3;
ctx.strokeStyle='#FF0000';
ctx.stroke();
}
}
函数CalculateCircumReference(){
var周长=((2)*(数学Pi)*(R));
}
document.getElementById(“圆周”).innerHTML=圆周代码>
周长:
实际上,数学PI是错误的……您已经编写了math.PI
var circumference = ((2) * (Math.Pi) * (R));
但实际上它是数学
var circumference = ((2) * (Math.PI) * (R));
因此,它返回半径为45的NaN
检查下面的工作代码。。。。您还需要调用CalculateCircumReference函数..并将半径作为参数传递
函数绘图(){
var canvas=document.getElementById('circle');
if(canvas.getContext){
var ctx=canvas.getContext('2d');
var X=画布宽度/2;
变量Y=画布高度/2;
var R=45;
ctx.beginPath();
弧(X,Y,R,0,2*Math.PI,false);
ctx.lineWidth=3;
ctx.strokeStyle='#FF0000';
ctx.stroke();
计算循环差(R);
}
}
函数计算循环差(R){
var周长=((2)*(数学PI)*(R));
document.getElementById(“圆周”).innerHTML=圆周;
}
周长:
您有三个问题:
- 首先,您需要提供访问
R
的calculateCircumReference()
范围。这可以通过从draw()
中调用calculateCircumReference()
并将其作为函数参数传递来实现。您还需要告诉calculatecircumference()
,它的函数参数应该分配给局部变量R
,方法是将其写入calculatecircumference(R)
- 其次,
document.getElementById(“圆周”).innerHTML
无权访问percentral
的范围。只需运行一行document.getElementById(“圆周”).innerHTML=percentry
line-insidecaluclatepercentry()
- 最后,您调用了
Math.Pi
,而不是calculateCircumReference()
中的Math.Pi
。PI
必须是大写
纠正这三个问题可以解决问题,如下所示:
函数绘图(){
var canvas=document.getElementById('circle');
if(canvas.getContext){
var ctx=canvas.getContext('2d');
var X=画布宽度/2;
变量Y=画布高度/2;
var R=45;
ctx.beginPath();
弧(X,Y,R,0,2*Math.PI,false);
ctx.lineWidth=3;
ctx.strokeStyle='#FF0000';
ctx.stroke();
计算循环差(R);
}
}
函数计算循环差(R){
var周长=((2)*(数学PI)*(R));
document.getElementById(“圆周”).innerHTML=圆周;
}
周长:
当前结果是什么..预期结果是什么?可能的重复我希望它显示圆周,当前结果只显示圆。变量R
在不同的函数中定义,因此在CalculateCircumReference()中不可见
。将其声明为全局。圆周也是如此。设置innerHTML
的那一行也需要在函数内部。问题不在于document.getElementById(“圆周”)
,而是变量周长
定义在一个从未调用过的函数中。与CalculateCircumReference()
相同,没有范围查看draw()中定义的变量R
。您缺少链…在绘图中调用CalculateCircumReference,,,并在CalculateCircumReference中调用插入…一个相互调用的事件链…希望有帮助:)