import java.awt.*;
import javax.swing.*;
public class test{
  MyCanvas palette;
  JFrame mainJFrame;
  double f(double x) {  
      return (Math.sin(2*x)); 
 }
public class MyCanvas extends JPanel{
  public void paint(Graphics g) { 
       double x0,x1,y0,y1,xd,yd; 
       double max=5.0; 
       int w,h,hw,hh; 
       w=getWidth();
       h=getHeight();
       hw=w/2; hh=h/2;
       g.drawString("Sin[2x]",10,40);
       g.setColor(Color.red);  
       g.drawString("0",hw+5,hh+12); 
       g.drawString(""+max,hw-20,80);
       g.drawString(""+max,w-20,hh+12);
       g.drawLine(0,hh,w,hh);
       g.drawLine(hw,0,hw,h);
       xd=2*max/w;   //这段代码.
       yd=hh/max;   //这段代码.
       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));
       } 
  }
 }
    
  
  public test(){
    mainJFrame=new JFrame("用JPanel画图示例");
    palette=new MyCanvas();
    mainJFrame.add(palette);
    mainJFrame.setSize(300,300);
    mainJFrame.setVisible(true);
    mainJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  public static void main(String[] args){
     new test();
   }
}如上述所见,画SIN函数曲线通过直接连线各个坐标点间的直线形成SIN曲线,它是如何在图版上模拟放大的?另外那几条不懂的语句的是不是把界面上的各个点放大?如何实现的,可以举例帮我分析下吗,谢谢了!!!