本来想用循环的,可是发现
double x,y,a,b 的值不能画 g.drawLine(x,y,a,b);//这里要用int
import java.applet.Applet;
import java.awt.*;import javax.swing.JFrame;public class Untitled1 extends Applet
{

final double PI= 3.14159;
    public void paint(Graphics g)
    {  
    {   
     int x=30;
     double y= Math.sin(x*PI/180);
         int a=x+90;
        int  b=(int) Math.sin(a*PI/180);
     g.drawLine(x,y,a,b);
    
        
    
        
    } 
    }
}

解决方案 »

  1.   

    这个是用点阵方法画的.效果并不好.555555555555555555555555
    import java.awt.*;
    import javax.swing.*;public class b
    {
      public static void main(String[] args)
      {
        e can=new e();
        
        JFrame jf=new JFrame();
        jf.setSize(new Dimension(400,400));
        can.setSize(400,400);
        jf.getContentPane().add(can);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.repaint();
      }
    }class e extends Canvas
    {
      double x;
      public e()
      {
        
      }
      public void paint(Graphics g)
      {
        for (x = 0; x <400; x+=0.001) {
          g.fillOval((int)(x),(int)(30*Math.sin(x))+200,1,1);
        }  }
    }
      

  2.   


    刚我在网上找到了个例子,贴一下把import java.awt.*; //加载awt包
    import java.applet.*; //加载applet包 
    public class sin extends Applet{ //声明sin类继承Applet类
    double x; // 声明变量 语法:变量类型 变量名double f(double x){ //定义sin函数
    int h= 50; //获得窗口高度参数
    int w= 50; //获得宽度高度参数 
    return h/2-(Math.sin((x-10)*Math.PI/150))*h/3; //调用Math类,

    // 返回参数
    public void paint(Graphics g){ //定义paint方法for(x=10;x<700;x++){ //利用循环画sin曲线
    g.drawLine((int)x,(int)f(x),(int)(x+1),(int)f(x+1));
    }g.setColor(Color.red); //设置颜色
    g.drawString("正弦曲线",100,35); //输出字符串

    }