关于渐开线函数和反渐开线函数在齿轮计算过程中经常用到,在网上找了一下,看到不少的计算工具。在这里,我用Delphi变了一个小计算器。下面,我把这两个函数的原代码发布出来,供大家参考一下。
function INV(x:Double):Double ; //自定义全局函数:渐开线函数
begin
INV:=tan(x)-x;
end;
function ArcInv(x:double):double; //自定义全局函数:反渐开线函数
const
MaxError=0.0000000001;
MaxCount=100000;
var
x1,x2,Error:double;
num:integer;
begin
x1:=3*x;
x1:=exp(ln(x1)/3); //x=(3x)^(1/3)
error:=1; //maximum of error
num:=0; //counter of iterative
while (Error>MaxError) and (num<MaxCount) do
begin
x2:=arccos(sin(x1)/(x+x1));
Error:=abs(x2-x1);
inc(num);
x1:=x2;
end;
Result:=x1;
end;
用这两个自定义函数可以实现渐开线和反渐开线函数的计算,我自己参考niuershiye版主的渐开线函数计算器自己写了一个,给大家参考一下。