java 产生正弦波
来源:互联网 发布:有声软件下载 编辑:程序博客网 时间:2024/06/14 10:28
java 产生正弦波
电子信息工程专业需要研究各种波形, 正弦比就是其中一种,下面简述一下用java 如何产生正弦波
1、首先新建一个类 sinWave extend JFrame 类型
2、在类中加入一个 public sinWave(){} 方法 用 来实现的
3、 其次设置尺寸大小, 用Dimension 获得品目尺寸 设置窗口出现的位置
4、 添加一个时间 time = new Timer(200, 事件) 时间里面做两件事 首先需要一个 ycopyionts[] 收入值后再粘上去
5、需要天剑一个组件 ,添加组件 addComponetListener的目的也就是为了让 让事件加到里面去 组件做一件事情 赋值 time.start 即可
6、由于是面板, 那么肯定要画图了 ,继承画笔,设置衍射划线 drawLine DrawPolyLine() 等
7、主函数 用类申明一个对象然后设置开关模式。。。。
下面是程序代码:
import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ComponentAdapter;import java.awt.event.ComponentEvent;import javax.swing.JFrame;import javax.swing.Timer;public class sinWave extends JFrame{private static final int NUM = 1500;private static final double TWOPI = 2*3.1415926;private static final int STEP = 10;private int width;private int height;private int i;private int[] xPoint = new int[NUM];private int[] yPoint = new int[NUM];private int[] yCopyPoints = new int[STEP];private Timer time;public sinWave(){ //设置面板 出现的尺寸和位置 setSize(600,500); setBackground(Color.WHITE); Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize(); width = getWidth(); height = getHeight(); this.setLocation((scrSize.width - width)/2, (scrSize.height - height)/2); setVisible(true); //下面开始对xy 轴数据进行初始化 for(i= 0 ; i < NUM ; i++) { xPoint [i] = width * i/NUM; yPoint [i] = (int)(height/2 *(1- Math.sin(TWOPI* i/NUM))); } //下面添加一个时间监听器 time = new Timer(200, new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//在这个时间里面主要做两件事情 先截取一段然后黏在后面//而且做的事情越x 无关for(i = 0 ; i < STEP; i++){yCopyPoints[i] = yPoint[i];}for(i = 0 ; i < NUM - STEP ; i++){yPoint[i] = yPoint[i+ STEP];}for(i = 0; i < STEP ; i++){yPoint[i+ NUM - STEP] = yCopyPoints[i];}repaint();}}); //时间监听事件完成之后现在要做的是加一个组件适配器 addComponentListener(new ComponentAdapter() { //适配器中新建一个函数 给这个函数提那家一个事件 public void componentResized(ComponentEvent ce) { width = getWidth(); height = getHeight(); for(i = 0 ; i < NUM ; i++) { xPoint[i] = width* i /NUM; yPoint[i] = (int)(height/2 *( 1- Math.sin(TWOPI*i/NUM))); } }}); time.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(xPoint, yPoint, NUM); }public static void main(String[] args){sinWave sinwave = new sinWave();sinwave.setDefaultCloseOperation(EXIT_ON_CLOSE);}}
1 0
- java 产生正弦波
- AVR EVB PWM正弦波产生程序
- DE2实践之WM8731产生正弦波
- 用AVR单片机来产生正弦波信号
- 如何创建产生正弦波的mif文件
- TLC5615 产生频率可变的正弦波
- 正弦波
- 正弦波
- 怎样用单片机和DA转换产生一个正弦波.
- 单片机 利用C语言产生正弦波DA数据
- Audio Codec介绍-4(利用Adobe Audition工具来产生正弦波)
- Audio Codec介绍-4(利用Adobe Audition工具来产生正弦波)
- Proteus之51MCU学习之路--如何用PWM波产生正弦波?
- 正弦波振荡器
- 正弦波近似
- matlab 正弦波
- java产生UUID
- java 随机产生字符串
- android ListView下拉刷新疯狂调用getView 解决办法
- PHP简单利用 token 防止表单重复提交
- [hdu 4611]Balls Rearrangement 数论
- 引用系统资源 error: Error: Resource is not public.
- Java Web开发工具WebBuilder试用手记
- java 产生正弦波
- PHP 安全下载文件
- UVA 1329 Corporative Network
- 使用 PHPMailer 发送邮件
- 调试程序的方法
- 18 周 oj 打倒魔王
- POJ1036——动态规划
- 20个非常有用的PHP类库
- windows文件及注册表编程