//windows API写过滚动正弦曲线,感觉用java做起来代码会比较小,试了一下,但感觉
//面不如windows好.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
public class SinWave extends JFrame{
private static final int NUM = 1000;
private static final double TWOPI = 2 * 3.14;
private static final int STEP = 10;
private int []xPoints = new int[NUM];
private int []yPoints = new int[NUM];
private int []yCopyPoints = new int[STEP];
private int width,height;
private Timer timer;
public SinWave()
{
setSize(500,400);
this.setBackground(Color.white);
Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
width = getWidth();
height = getHeight();
this.setLocation((scrSize.width-width)/2,(scrSize.height-height)/2);
for(int i = 0; i < NUM; i++)
{
xPoints[i] = i * width / NUM;
yPoints[i] = (int)(height/2*(1-Math.sin(TWOPI * i / NUM)));
}
setVisible(true);
timer = new Timer(200,new ActionListener(){
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i < STEP; i++)
yCopyPoints[i] = yPoints[i];
for(int i = 0; i < NUM-STEP; i++)
yPoints[i] = yPoints[i+STEP];
for(int i = 0; i < STEP; i++)
yPoints[i+NUM-STEP] = yCopyPoints[i];
repaint();
}
});
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent ce) {
width = getWidth();
height = getHeight();
for(int i = 0; i < NUM; i++)
{
xPoints[i] = i * width / NUM;
yPoints[i] = (int)(height/2*(1-Math.sin(TWOPI * i / NUM)));
}
}
});
timer.start();
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.red);
g.drawLine(0,height/2,width,height/2);
g.setColor(Color.green);
g.drawPolyline(xPoints,yPoints,NUM);
}
public static void main(String []args)
{
SinWave sw= new SinWave();
sw.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
分享到:
相关推荐
一个用swing绘制sin曲线的小程序 供初学者借鉴借鉴
Java实现画正弦函数曲线,简单,明洁。
NULL 博文链接:https://sdfx.iteye.com/blog/2128502
用java画出两个周期内的正弦曲线,包括坐标。创建JAVA小程序
用小程序画得正弦曲线,简短易懂,居家必备。
java图形处理及鼠标事件处理, 资源描述 资源描述 资源描述
这个程序可以画正弦曲线,从左到右动态实时绘制
teechart 的简单绘制动态正弦曲线的小例子。
java用滚动条实现的调色板(swing)
Java做的文字滚动程序 可以交作业 Java做的文字滚动程序 可以交作业 Java做的文字滚动程序 可以交作业
java 滚动的文字 java 滚动的文字 java 滚动的文字 java 滚动的文字
java代码-使用java解决滚动工具栏的源代码 ——学习参考资料:仅用于个人学习使用!
Java技术实现字幕滚动,通过Applet小应用程序来实现。
主要介绍了java数组排序示例,需要的朋友可以参考下
JAVA源代码 可直接运行 很全的 很简单的小程序
java类,通过运行dos命令,txt文件可以像exe一样运行,数据由随机数产生,可以动态的显示曲线,以循环的方式实现动态显示
这个日历不只可以显示当天日期,还能显示实时时间,并且具有滚动字幕功能,大家可以通过修改代码的字符串修改滚动字幕内容。
Java编写的滚动抽奖,内含数据库sql,一次可以抽选多个。
我已经构建了一个GUI,可以在上面显示正弦和余弦图。绘制该图的代码是:while(x1
java 二次贝塞尔曲线算法,根据起点、终点和控制点输出点集合