站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题请问谁知道正弦函数的模拟算法的思想是什么吗?我在网上搜索到这样的代码,但是看不懂,谁能帮忙解释一下?谢谢

请问谁知道正弦函数的模拟算法的思想是什么吗?我在网上搜索到这样的代码,但是看不懂,谁能帮忙解释一下?谢谢

摘要: 请问谁知道正弦函数的模拟算法的思想是什么吗?我在网上搜索到这样的代码,但是看不懂,谁能帮忙解释一下?谢谢


大家帮忙看看三角模拟算法 谢谢
并且说明一下这个算法的思想,我看不懂啊。

在游戏中经常会用到三角函数值,但由于J2me不支持浮点数,所以通常是将其值放大后再进行模拟,以下给出我的算法:
/*任意角度的正弦值(扩大10000倍)*/
public long sin(int x,int path)
{
if(path==0)//级数算法
{
int goal=0;
goal=(1000*x)/6-(10*x*x*x)/(36*36);
if(x<=60)
return goal;
else if(x<=70)
return goal+x*x*x*x/155520;
else if(x<=80)
return goal+x*x*x*x/116640;
else
return goal+x*x*x*x/103680;
}
else//三角模拟算法
{
if(x==0)
return 0;
else
{
int goal=175; //为什么初值是175???
for(int i=0;i {
goal=(goal*9998+sqrt(100000000-goal*goal)*175)/10000;//这一行完全不明白
}
return goal;
}
}



问问题要给分的呀。。 早知道我多给一点。。 我有多少就给你们多少 只要谁帮我解答一下这个问题。。 谢谢


研究下,以前都偷懒,用正弦表的说


研究下,以前都偷懒,用正弦表的说
==========================
建表正解,up一下


sin(1)=0.017452406437283512819418978516316
*10000=175
这就是sin(x)和sin(nx)的关系
这要用到高数里面的傅里叶级数,泰讷展开式



如何快速且高精度地求sin函数?
http://community.csdn.net/Expert/topic/5020/5020499.xml?temp=5.459231E-02

----------------------------------------------------
不过,如果你只是求整数度数而不是小数的度数的话(比如si(45)而不是求sin(45.5)),个人建议你用查表~~


楼主,在J2ME中使用正弦函数,建议你使用MathFP开发库,支持MIDP1.0,用后整数的后12位做小数位,我用过它开发小游戏


http://mywebpages.comcast.net/ohommes/MathFP/index.html


这个问题我已经解决了 谢谢大家


↑返回目录
前一篇: 在线急等!!第一个J2ME的HelloWorld程序出错~~~
后一篇: JAVA菜鸟求救,用递归算法将一字符串反着输出