1. 程式人生 > >畫 Sin()函式影象

畫 Sin()函式影象

主題:畫sin(x)函式影象

java 程式碼如下:

import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;


public class DrawSin extends JFrame implements ActionListener{
	
	JButton draw = new JButton("畫圖");
	JButton clear = new JButton("清除畫圖");
	JTextField w = new JTextField(20);
	
	public DrawSin(){
		setTitle("sin()函式");//設定標題
		setLayout(new FlowLayout());//設定為流佈局
//		setLayout(new CardLayout());
//		draw.setLocation(40, 40);
		//新增元件
		add(draw);
		add(clear);
		add(w);
		
		//新增監聽事件
		draw.addActionListener(this);
		clear.addActionListener(this);
		
		setSize(600,600);//設定視窗大小
		setLocationRelativeTo(null);//設定視窗居中顯示
		setVisible(true);//設定視窗顯示
		setDefaultCloseOperation(EXIT_ON_CLOSE);//設定關閉按鈕響應方式
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if( e.getSource() == draw ){//畫圖
			int text = Integer.parseInt(w.getText());//獲取文字框中的數字字元
			Graphics g = getGraphics();
			for( int i=0; i<1000; i++ ){
				int x1 = i;
				int x2 = i+1;
				int y1 = (int) (Math.sin( text*x1*Math.PI/180) * 100 +200 );//sin()函式
				int y2 = (int) (Math.sin( text*x2*Math.PI/180) * 100 +200 );//sin()函式
//				g.drawString("*", x1, y1);//畫圖
				g.drawLine(x1, y1, x2, y2);//畫線
			}
		}
		
		if( e.getSource() == clear){//重畫
			repaint();
		}
		
	}
	
	public static void main(String args[]){
		new DrawSin();
	}

}

執行結果: