WEB开发网
开发学院软件开发Java J2ME中查表法使用三角函数 阅读

J2ME中查表法使用三角函数

 2007-12-23 12:33:37 来源:WEB开发网   
核心提示: CLDC和MIDP都没有提供三角函数,而且CLDC1.0中也没有浮点数,J2ME中查表法使用三角函数,所以我们的选择是查表,使用8位定点数的sin和cos表,但也并不是没有办法,具体实现请关注作者的后续原创文章,下面是wtk自带demo中的代码,只提供了有限的几个角度,实际使用时根据需要细化角度值

   CLDC和MIDP都没有提供三角函数,而且CLDC1.0中也没有浮点数,所以我们的选择是查表。使用8位定点数的sin和cos表。下面是wtk自带demo中的代码,只提供了有限的几个角度,实际使用时根据需要细化角度值。
 
// sines of angles 0, 10, 20, 30, 40, 50, 60, 70, 80, 90,   all *256

PRivate static final int[] SINES ={ 0, 44, 88, 128, 165, 196, 222, 241, 252, 256 };

// angle is in degrees/10, i.e. 0..36 for full circle

   private static int sineTimes256(int angle)

   {

   angle %= 36;   // 360 degrees

   if (angle <= 9)      // 0..90 degrees

   {

     return SINES[angle];

   }

   else if (angle <= 18)   // 90..180 degrees

   {

     return SINES[18-angle];

   }

   else if (angle <= 27)   // 180..270 degrees

   {

     return -SINES[angle-18];

   } else           // 270..360 degrees

   {

     return -SINES[36-angle];

   }

}

   // angle is in degrees/10, i.e. 0..36 for full circle

   private static int cosineTimes256(int angle)

   {

   return sineTimes256(angle + 9);   // i.e. add 90 degrees

}

   虽然这是一个简单的实现,但确非常实用,从效率来说,要比模拟浮点计算的效率高很多。但是现在项目中需要使用一个带有开三次方的计算公式,这时这个东西就帮不上忙了。^-^

   因此,在非CLDC1.1以上的开发环境中,需要自己模拟实现这种功能并不简单,但也并不是没有办法,具体实现请关注作者的后续原创文章。(这篇不是原创,来自网络)

(出处:http://www.cncms.com)


Tags:JME 查表法 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接