程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> [JAVA100例]027、控制波形圖

[JAVA100例]027、控制波形圖

編輯:關於JAVA

import java.awt.*;
import javax.swing.*;

public class Func extends JFrame{
/**
*<br>方法說明:主方法
*<br>輸入參數:
*<br>返回類型:
*/
 public static void main(String[] args){
  Func db = new Func();
  db.update();
 }
/**
*<br>方法說明:構造器,顯示窗體
*<br>輸入參數:
*<br>返回類型:
*/
 Func(){
  super("Function");
  setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  setSize(310,310);
  show();
 }
/**
*<br>方法說明:更新畫面
*<br>輸入參數:
*<br>返回類型:
*/
 public void update(){
   repaint();
 }
/**
*<br>方法說明:轉換坐標點
*<br>輸入參數:
*<br>返回類型:
*/
 double f(double x) {
    return (Math.sin(2*x)+Math.cos(3*x));
 }
/**
*<br>方法說明:繪制坐標圖
*<br>輸入參數:
*<br>返回類型:
*/
 public void paint(Graphics g) {
    double x0,x1,y0,y1,xd,yd;
    double max=5.0;
    int w,h,hw,hh;
    //獲取屏幕的尺寸
    w=getSize().width;
    h=getSize().height;
    hw=w/2; hh=h/2;
    //在屏幕上輸出字符
    g.drawString("Sin[2x]+Cos[3x]",10,40);
    g.setColor(Color.red);
    g.drawString("0",hw+5,hh+12);
    g.drawString(""+max,hw-20,40);
    g.drawString(""+max,w-20,hh+12);
    //繪制X軸坐標
    g.drawLine(0,hh,w,hh);
    //繪制Y軸坐標
    g.drawLine(hw,0,hw,h);
    xd=2*max/w;//計算X增量
    yd=hh/max; //計算y增量
    g.setColor(Color.blue);
    //使用增量繪制一小段線,最終組成曲線圖形。
    for (int x=0 ; x<w-1; x++) {
     x0=-max+x*xd; y0=f(x0)*yd;
     x1=x0+xd;   y1=f(x1)*yd;
     g.drawLine(x,(int)(hh-y0),x+1,(int)(hh-y1));
    }
 }
} //end

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved