Javascript 理解功能
我很难理解一个函数,希望有人能帮我。我试图找到链轮的中径,JavaScript中的函数是:Javascript 理解功能,javascript,math,Javascript,Math,我很难理解一个函数,希望有人能帮我。我试图找到链轮的中径,JavaScript中的函数是: function sprocket_diam(dataform,pitch,teeth) { var a,b,c,d,e; a = pitch / 2; b = teeth * 2; c = 360 / b; d = Math.sin ((c * Math.PI) / 180); e = (a / d) * 2 dataform.diam.val
function sprocket_diam(dataform,pitch,teeth)
{
var a,b,c,d,e;
a = pitch / 2;
b = teeth * 2;
c = 360 / b;
d = Math.sin ((c * Math.PI) / 180);
e = (a / d) * 2
dataform.diam.value = e;
}
上面的函数可以正常工作,但我正试图用计算器手动完成。我认为我遇到的问题来自d
变量。例如,假设我有一个齿距为.5“
的15
齿链轮。使用上述公式,我得到的变量数为:
a=0.25
,b=30
,c=12
,对于d
,我取(12*3.14)/180
,这给了我0.2093
所以e=(0.25/.2093)*2
结果是2.388915432
但答案不正确,应该是2.404867172372066
有人能指出我做错了什么吗?我一直在数学上挣扎。你的错误是你做的好像数学一样。PI
会是3.14
如果你使用
Math.PI
的精确值,你会得到12*Math.PI/180==0.2094391023931953
,而不是你使用的0.2093
,最后你会发现2.404867172372066
你的错误是你做的好像Math.PI
是3.14
如果你使用
Math.PI
的精确值,你会得到12*Math.PI/180==0.2094391023931953
而不是你使用的0.2093
,最后你会发现2.404867172372066
你没有计算窦。(Math.sin)你没有计算窦。(Math.sin)你确定螺距和齿数是双倍的吗?@user1737909你是什么意思?在你的手算中,它应该是e=(0.25/Math.sin(.2093))*2
,而不是e=(0.25/.2093)*2
。根据这个变化,用3.14代替Math.PI
产生的错误是2.4060690729394008(而不是2.404867172372066).你确定齿距和齿数是双倍的吗?@user1737909你是什么意思?在你的手算中,它应该是e=(0.25/Math.sin(.2093))*2
,而不是e=(0.25/0.2093)*2
。这样的变化,用3.14代替Math.PI
产生的错误是2.4060690729394008(而不是2.404867172372066).我试过你的例子,得到了0.2094391023931953
,但它会给我2.3873241463784302557385799320236
作为答案什么给了你2.3873241463784302557385799320236
?你用你的代码是不可能得到的。OP不是从代码中得到2.387…它是从代码的手工模拟得到的d模拟忽略了正弦。我试过你的例子,得到了0.2094391023931953
,但它会给我2.3873241463784302557385799320236
作为答案,给你的答案是2.3873241463784302557385799320236
?用你的代码你是不可能得到的。OP不是从代码中得到2.387…它来自代码的手动模拟。手动模拟忽略了正弦值。+1。这说明了大部分差异。其余的是使用3.14而不是更精确的Math.PI
+1。这说明了大部分差异。其余的是使用3.14而不是更精确的Math.PI
。