游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3351|回复: 3

正弦值的两种算法比较wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2005-10-13 15:10:00 | 显示全部楼层 |阅读模式


在游戏中经常会用到三角函数值,但由于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;
    for(int i=0;i    {
     goal=(goal*9998+sqrt(100000000-goal*goal)*175)/10000;
    }
    return goal;  
   }
  }
}
/*任意整数的平方根*/
public int sqrt(long a)
{
  int goal=0;
  for(long i=0;i  {
   if((i*i)<=a&&((i+1)*(i+1))>a)
   {
    goal=(int)i;
    break;
   }
  }
  return goal;
}

用此算法计算了从55度到65度的正弦值.
载自:daojianxiao


6

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2005-10-16 02:26:00 | 显示全部楼层

Re:正弦值的两种算法比较wxh zt

用泰勒展开怎么样

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2005-10-29 10:29:00 | 显示全部楼层

Re:正弦值的两种算法比较wxh zt

何必呢 已经有很强效率很高的定点库可以用

11

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2005-11-16 23:16:00 | 显示全部楼层

Re:正弦值的两种算法比较wxh zt

mathFP 是一个好的选择
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 16:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表