A. 怎么用java编程实现实时动态运行的模拟时钟
import java.awt.*;
import java.applet.Applet;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ClockApplet extends Applet implements Runnable //Applet支持线程
{
private Thread athread; //线程
private SimpleDateFormat sdateformat; //日期格式
public void init()
{
this.setBackground(Color.white);//背景颜色设为白色
this.athread = null;
}
public void paint(Graphics g)
{
this.sdateformat = new SimpleDateFormat("hh时mm分ss秒");
g.drawString(this.sdateformat.format(new Date()),25,131);
Calendar rightnow = Calendar.getInstance();
int second = rightnow.get(Calendar.SECOND);
int minute = rightnow.get(Calendar.MINUTE);
int hour = rightnow.get(Calendar.HOUR);
//半径
int R_H = 20,R_M = 4,R_S = 4;
//时针的坐标
//x ====(9-3)[0-6] (3-9)[6-0]
//y ====(12-6)[0-6] (6-12)[6-0]
int H_x ;
int H_y;
//x
if(hour == 0)
{
hour = 12;
}
if( hour >= 3 && hour <= 9 )
{
H_x = R_H*Math.abs(hour - 9);
}
else
{
if(hour > 9)
{
H_x = R_H*Math.abs(hour - 9);
}
else
{
H_x = R_H*Math.abs(hour+3);
}
}
//y
if( hour >= 6 && hour <= 12 )
{
H_y = R_H*Math.abs(hour - 12);
}
else
{
H_y = R_H*hour;
}
//分针的坐标
int M_x;
int M_y;
if(minute == 0)
{
minute = 60;
}
if( minute >= 15 && minute <= 45 )
{
M_x = R_M*Math.abs(minute - 45);
}
else
{
if(minute > 45)
{
M_x = R_M*Math.abs(minute - 45);
}
else
{
M_x = R_M*Math.abs(minute+15);
}
}
//y
if( minute >= 30 && minute < 60 )
{
M_y = R_M*Math.abs(minute - 60);
}
else
{
M_y = R_M*minute;
}
//秒针的坐标
int S_x;
int S_y;
if(second == 0)
{
second = 60;
}
if( second >= 15 && second <= 45 )
{
S_x = R_S*Math.abs(second - 45);
}
else
{
if(second > 45)
{
S_x = R_S*Math.abs(second - 45);
}
else
{
S_x = R_S*Math.abs(second+15);
}
}
//y
if( second >= 30 && second <= 60 )
{
S_y = R_S*Math.abs(second - 60);
}
else
{
S_y = R_S*second;
}
// g.drawString(String.valueOf(second),25,50);
// g.drawString(String.valueOf(minute),25,60);
// g.drawString(String.valueOf(hour),25,70);
// g.drawString(String.valueOf(H_x),25,80);
// g.drawString(String.valueOf(H_y),25,90);
g.drawOval(0,0,120,120);//距离相差10像素
g.setColor(Color.darkGray);
g.drawString("9",5,65);
g.drawString("3",110,65);
g.drawString("12",55,15);
g.drawString("6",55,115);
g.drawString("1",80,20);
g.drawString("2",100,40);
g.drawString("4",100,90);
g.drawString("5",80,110);
g.drawString("7",30,110);
g.drawString("8",10,90);
g.drawString("10",10,40);
g.drawString("11",30,20);
g.setColor(Color.red);
g.drawLine(60,60,H_x,H_y);//前一个点表示起点,另一个表示终点
g.setColor(Color.blue);
g.drawLine(60,60,M_x,M_y);
g.setColor(Color.yellow);
g.drawLine(60,60,S_x,S_y);
}
public void start()
{
if(athread == null)
{
athread = new Thread(this);
athread.start();
}
}
public void stop()
{
if(athread != null)
{
athread.interrupt();
athread = null;
}
}
public void run()
{
while(athread != null)
{
repaint();
try
{
athread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
}
B. 如何编程动态生成GIF图片
jpg是静态的,你说的是gif格式,有很多软件可以做GIF动画的。
初学者可以使用GIF Movie Gear做。
http://www.8080.net/html/200412/p291754300.html
GIF Movie Gear是一款异常小巧的GIF制作软件。仅仅2M不到的一个小软件却具备了GIF制作软件所需要的所有常见功能。另外它还可以在各种图像以及AVI文件之间随意转换。下面我们一起来领略一下GIF Movie Gear的强大功能。
动画实际上是连续的静态画面,因此在制作动画之前,我们要首先准备好动画播放过程中的一系列单帧图像。可以先利用其它平面绘图软件制作好单帧图像之后再利用GIF Movie Gear来将其制作成GIF动画。
打开GIF Movie Gear之后我们看到的主界面上有“打开”以及“插入帧”的按钮,
“打开”按钮的作用等同于“文件”菜单下“导入”选项的功能。在“导入”选项之中可以看到GIF Movie Gear支持的文件格式还是相当之多的。
我们可以将这些所支持格式的图片文件合并或者制作成动态的GIF图片。
一次选择多张已经制作好的单帧图像。
导入单帧图像后的界面。此时也可以通过“帧”菜单对单帧的画面进行调整和编辑。
点击工具栏的三角形播放按钮即可预览动画。
经过预览会发现此时的动画速度过快,可以从“动画”菜单打开“属性设置”。在“全局帧”选项卡里面将播放速度设置为50每帧持续1/100秒,也就是说每帧的显示时间为50毫秒,即半秒的时间。
另外在“属性设置”的“动画”选项卡里,还可以对播放次数等做出设置,当播放次数设置为0的时候,意即循环播放。
对动画设置好之后并且预览满意之后即可保存为GIF动画。实际上GIF Movie Gear对于GIF以及图片格式的转换非常之简单,在保存的时候选择相应的格式即可。
OK!大功告成了:
GIF Movie Gear亦可以直接导入AVI视频格式的文件将其转换为GIF格式,从“文件”菜单“导入”AVI文件,经过一段处理过程之后,我们可以在软件界面里看到AVI视频文件被分解成一个个单帧图像,并可以作为GIF格式预览。一般来说,为了避免生成的GIF图片文件体积过于庞大,我们只会截取极少的一部分来制作成GIF图片,选取一个片断的连续单帧,将其它的多余帧删除。
一般AVI影片的原始分辨率都比较大,在“动画”菜单选择“调整大小”,即可以对最终生成的GIF分辨率作精确调整。调整之后预览满意之后即可将文件另存为GIF格式的图片。
为了GIF图片便于浏览,我们要避免太复杂的帧数过多的图像造成图片体积过大,另外在保存之前可以利用“动画”菜单的“精简颜色”和“优化动画”两个功能来缩减GIF图片的体积。
===================
一般的人可以使用UGA
个人认为Ulead GIF Animator v5.05 不错!!!
友立公司出版的动画GIF制作软件,内建的Plugin有许多现成的特效可以立即套用,可将AVI文件转成动画GIF文件,而且还能将动画GIF图片最佳化,能将你放在网页上的动画GIF图档减肥,以便让人能够更快速的浏览网页。
http://www.crsky.com/soft/14.html
=======================
高手可以使用photoshop中的Adobe ImageReady 。
骨灰都用Fireworks MX 2004 做。
Macromedia Flash MX2004 7.01简体中文版(矢量动画)
Flash是交互式矢量图和Web动画的标准。网页设计者使用Flash能创建漂亮的、可改变尺寸的、以及极其紧密的导航界面、技术说明以及其他奇特的效果。完全汉化版,实用于测试正式版!本次更新的内容:汉化95%的函数,更改部分不确切的地方,希望你使用的时候有什么问题,能及时反映给我好吗?Flash MX 2004中的编程特性有很大突破,令人有耳目一新的感觉,Developer甚至可以掉去Tool Bar绘图工具和Timeline
软件大小:77279KB
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP
下载页面:http://www.onlinedown.net/soft/9866.htm
C. 静态编程语言和动态编程语言的联系
静态和动态是针对变量的数据类型而言的,区主要有以下几个方面:
1、使用静态类型语言编写的代码中,要声明变量的数据类型,而且不同数据类型的变量不允许直接赋值,它的数据类型是编译期间进行检查的。
2、静态类型语言在使用变量之前,需要为它们分配好内存。
3、静态类型语言功能强大,但相对难以学习,而且灵活性差。
4、动态类型语言与静态语言刚好相反,它只在程序运行期间才去进行数据类型检查,不需要给变量指定数据类型,它会在第一次同仁给变量时,在内部记录数据类型。
5、动态类型语言虽然快速灵活,但在代码运行前很难找到bug,所以提升了开发速度,但失去程序的健壮性。
静态类型语言有:c、c++、c#、object-c、java等
动态类型语言有:python、ruby、php、javascript、erlang等