00000001.htm
来自「水木清华BBS」· HTM 代码 · 共 50 行
HTM
50 行
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: jtiger (jim), 信区: Java <BR>标 题: 在JAVA applet中的动画(二) <BR>日 期: Tue Mar 12 15:42:31 1996 <BR> <BR> <BR> 画出每一帧: <BR> 剩下的就是将每一帧图象绘出。在上例中调用了applet的repaint() <BR> 来绘出每一帧图象。 <BR> public void paint(Graphics g) { <BR> g.setColor(Color.black); <BR> g.drawString("Frame " + frame, 0, 30); <BR> } <BR> <BR> 生成图形: <BR> 现在我们来画一些稍微困难的东西。下例画了一个正弦曲线的组合, <BR> 对于每一个x,画一条短的垂直线,所有这些线组成了一个图形,并且每帧变化。 <BR> 但不幸有些闪动,在以后我们将解释为什么闪以及怎样避免。 <BR> public void paint(Graphics g) { <BR> Dimension d = size(); <BR> int h = d.height / 2; <BR> for (int x = 0 ; x < d.width; x++) { <BR> int y1 = (int)((1.0 + Math.sin((x - frame) * <BR>0.05)) * h); <BR> int y2 = (int)((1.0 + math.sin((x + frame) * <BR>0.05)) * h); <BR> g.DrawLine(x, y1, x, y2); <BR> } <BR> } <BR> <BR> <BR> 避免闪烁: <BR> 上例中的闪烁有两个原因:绘制每一帧花费的时间太长(因为重绘时要 <BR> 求的计算量大),二是在每次调用pait()前整个背景被清除,当在进行下一帧的 <BR> 计算时,用户看到的是背景。 <BR> 清除背景和绘制图形间的短暂时间被用户看见,就是闪烁。在有些平台 <BR> 如PC机上闪烁比在X Window上明显,这是因为X Window的图象被缓存过,使得闪烁 <BR> 的时间比较短。 <BR> 有两种办法可以明显地减弱闪烁:重载update()或使用双缓冲。 <BR> <BR> 重载update()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?