`

用java做的滚动的正弦曲线

阅读更多
//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);
 }
}

分享到:
评论

相关推荐

    java鼠标事件--正弦曲线

    在描述中提到的“正弦曲线”,意味着我们将用Java来绘制一个随着鼠标移动而变化的正弦波图形。这通常涉及到在Graphics2D对象上绘制线条或曲线,而这个对象可以从Component类的paintComponent()方法中获得。当鼠标按...

    用Java画正弦函数曲线

    本教程将详细讲解如何用Java来绘制正弦函数曲线。 首先,我们需要导入必要的Java库,特别是`java.awt`和`javax.swing`,它们提供了绘制图形和创建用户界面的功能: ```java import java.awt.Color; import java....

    zhengxianquxian.zip_java 实时_正弦曲线

    在Java编程语言中,"实时_正弦曲线"是一个典型的计算机图形学应用,它涉及到动态图形的绘制。在这个程序中,我们重点讨论如何利用Java来实现一个动态地从左到右绘制正弦曲线的功能。 首先,为了绘制正弦曲线,我们...

    JAVA实现滚动字

    在Java编程语言中,"滚动字"通常是指一种文本动画效果,其中文字会从一端移动到另一端,类似于电视屏幕底部的新闻滚动条。这种效果可以用于各种应用程序,如游戏、用户界面或者简单的演示。以下是一些关于如何在Java...

    java日历滚动字幕和实时时间显示

    在Java编程领域,创建一个能够显示当前日期、实时时间并具备滚动字幕功能的日历组件是一项常见的需求。这个组件不仅可以用于各种桌面应用,还可以在移动设备或者网页端提供丰富的交互体验。下面我们将深入探讨实现这...

    java 二次贝塞尔曲线算法

    java 二次贝塞尔曲线算法,根据起点、终点和控制点输出点集合

    Java生成曲线图

    Java生成曲线图是一种常见的数据可视化需求,特别是在数据分析、科学计算以及软件开发中。在这个场景下,JFreeChart 是一个强大的 Java 库,它为开发者提供了丰富的图表类型,包括曲线图,用于直观地展示数据趋势。...

    用java编写的随即滚动姓名的小程序

    总结一下,实现这个"用Java编写的随机滚动姓名的小程序"涉及的知识点包括: 1. Java基础语法和面向对象编程 2. 多线程的概念与实现,包括`Runnable`接口和线程的生命周期管理 3. `java.awt`和`javax.swing`库的使用...

    java实现一个滚动字幕的程序

    在Java编程语言中,创建一个滚动字幕程序是一项常见的任务,尤其在开发用户界面或多媒体应用时。这个程序的核心目标是让文字在指定区域里连续滚动显示,类似于电视新闻底部的跑马灯效果。下面我们将深入探讨如何实现...

    曲线拟合计算(java实现)

    Java作为一种通用的编程语言,提供了丰富的库和工具来实现曲线拟合。在这个项目中,作者使用Java实现了曲线和直线的拟合功能。 在Java中,曲线拟合通常涉及到数值分析和线性代数的知识。首先,我们需要理解数据点的...

    java动态正弦函数项目

    在Java编程语言中,动态正弦函数项目是一个用于展示如何在程序中实时计算并呈现正弦函数值的应用。这个项目的核心在于理解和应用数学中的正弦函数,并将其与Java的图形用户界面(GUI)技术结合,使得用户能够看到...

    Bezier曲线代码 java

    在Java编程语言中,实现Bezier曲线的代码通常涉及到一系列数学运算,包括向量、矩阵和插值算法。以下是对Bezier曲线及其Java实现的详细解析: Bezier曲线的基本概念: Bezier曲线由一组控制点定义,这些控制点不...

    Java编写的用最小二乘拟合曲线(带图形)

    在Java编程环境中,最小二乘法是一种常用的曲线拟合技术,用于找到一组数据点的最佳直线或曲线近似。本项目提供了实现这一算法的代码,并且包含图形化展示,使得数据拟合过程更加直观。以下是对相关知识点的详细解释...

    正弦曲线

    在这里,我们将重点关注正弦曲线在Java编程中的实现和应用。 首先,正弦曲线是一个周期性函数,通常表示为y = sin(x),其中x是角度或者弧度,y是对应的角度下的正弦值。在Java中,我们可以使用`java.lang.Math`类...

    Java实现四参数Logistic曲线拟合代码.zip

    本项目是用Java语言实现四参数Logistic曲线拟合的实例,确保了与MATLAB计算结果的高一致性。 四参数Logistic函数通常表示为: \[ f(x) = \frac{a}{1 + e^{-(x - c)/b}} + d \] 其中,\( a \) 是曲线的最大值,\( ...

    设计滚动字演示线程状态及改变方法

    在Java编程中,滚动字幕通常用于用户界面(UI)中的通知、提示或者展示动态信息。这个主题“设计滚动字演示线程状态及改变方法”主要涵盖了如何利用Java的多线程特性来实现滚动文字效果,并且管理线程的状态变化。...

    可滚动的表单 java 代码

    可滚动的代码 java 希望能够帮到大家...

    使用java实现的Bezier曲线

    Java中的Swing库提供了丰富的图形用户界面(GUI)组件,使得我们可以利用Java编程语言来实现交互式的Bezier曲线绘制。 在给定的项目中,有两个主要的Java源文件:BezierPanel.java和BezierFrame.java。BezierPanel...

    Java中的正弦和余弦图

    此外,为了使图形更具交互性,我们还可以添加滚动条或滑块来改变x轴的范围,或者添加按钮来切换正弦和余弦图。这需要使用Swing的`JScrollPane`、`JSlider`和`JButton`等组件,以及监听器(如`AdjustmentListener`和`...

    java写的椭圆曲线密码算法中的点乘算法

    自己编写的java语言描述 椭圆曲线密码系统算法中的点乘运算 ,可以实现nQ运算。初学者可以用来参考 学习

Global site tag (gtag.js) - Google Analytics