JAVA图形操作中FPS的计算 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-15
JAVA图形操作中FPS的计算时间:2011-08-18FPS:即帧 /秒(frames per second)的缩写,也称为帧速率。是指1秒钟时间里刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。如果具体到手机上就是指每秒钟能够播放(或者录制)多少格画面。同时越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(fps)越多,所显示的动作就会越流畅。 在绝大多数图形程序中(以游戏类为典型),执行效率都以FPS作为评估标准。 由于目前JAVA方面缺少相关用例,故完成功能如下图(在本机测试中,最大fps设定为500,实际达到FPS效率在IDE中280左右,单独运行380左右,受系统配置等因素影响): 代码如下: FPS部分相关源码: package org.test;import java.text.DecimalFormat;/*** <p>Title: LoonFramework</p>* <p>Description:</p>* <p>Copyright: Copyright (c) 2007</p>* <p>Company: LoonFramework</p>* @author chenpeng * @email:ceponline@yahoo.com.cn* @version 0.1*/public class FPSListen { //设定动画的FPS桢数,此数值越高,动画速度越快。 public static final int FPS = 500; // 换算为运行周期 public static final long PERIOD = (long) (1.0 / FPS * 1000000000); // 单位: ns(纳秒) // FPS最大间隔时间,换算为1s = 10^9ns public static long FPS_MAX_INTERVAL = 1000000000L; // 单位: ns // 实际的FPS数值 private double nowFPS = 0.0; // FPS累计用间距时间 private long interval = 0L; // in ns private long time; //运行桢累计 private long frameCount = 0; //格式化小数位数 private DecimalFormat df = new DecimalFormat("0.0"); //开启opengl public void opengl(){ System.setProperty("sun.java2d.opengl", "True"); System.setProperty("sun.java2d.translaccel", "True"); } /** *//** * 制造FPS数据 * */ public void makeFPS() { frameCount++; interval += PERIOD; //当实际间隔符合时间时。 if (interval >= FPS_MAX_INTERVAL) { //nanoTime()返回最准确的可用系统计时器的当前值,以毫微秒为单位 long timeNow = System.nanoTime(); // 获得到目前为止的时间距离 long realTime = timeNow - time; // 单位: ns //换算为实际的fps数值 nowFPS = ((double) frameCount / realTime) * FPS_MAX_INTERVAL; //变更数值 frameCount = 0L; interval = 0L; time = timeNow; } } public long getFrameCount() { return frameCount; } public void setFrameCount(long frameCount) { this.frameCount = frameCount; } public long getInterval() { return interval; } public void setInterval(long interval) { this.interval = interval; } public double ge |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于JAVA图形操作中FPS的计算 - 编程入门网的所有评论