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 s.netimes256(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 cos.netimes256(int angle)
{
return s.netimes256(angle + 9); // i.e. add 90 degrees
}
虽然这是一个简单的实现,但确非常实用,从效率来说,要比模拟浮点计算的效率高很多。但是现在项目中需要使用一个带有开三次方的计算公式,这时这个东西就帮不上忙了。^-^
因此,在非cldc1.1以上的开发环境中,需要自己模拟实现这种功能并不简单,但也并不是没有办法,具体实现请关注作者的后续原创文章。(这篇不是原创,来自网络)
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器