如何用不同策略画出写sin函数曲线,写出核心部分代码

解决方案 »

  1.   

    mport java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Polygon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class DrawSinFunction extends JPanel{

    private static final long serialVersionUID = 1L; public static void main(String[] args) {
    JFrame frame = new JFrame("Sin(x)");
    frame.getContentPane().add(new DrawSinFunction());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600, 400);
    frame.setVisible(true);
    } protected void paintComponent(Graphics g) {
    super.paintComponent(g); g.setColor(Color.blue);
    g.drawLine(25,180, 575, 180);
    g.drawLine(300, 20, 300, 360);
    g.drawString("Y", 302, 20);
    g.drawString("X", 575, 190);
    Polygon p = new Polygon();
    for(int x = -100; x <= 200; x ++) {
    p.addPoint(x + 250, 180-(int)(50*Math.sin((x/100.0)*2*Math.PI)));
    }
    g.drawPolygon(p);
    }
    }
    这是我写的,试试吧   能给我点分不?
      

  2.   

    这是改进以后的!import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Polygon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class DrawSinFunction extends JPanel{

    private static final long serialVersionUID = 1L; public static void main(String[] args) {
    JFrame frame = new JFrame("Sin(x)");
    frame.getContentPane().add(new DrawSinFunction());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600, 400);
    frame.setVisible(true);
    } protected void paintComponent(Graphics g) {
    super.paintComponent(g); g.setColor(Color.blue);
    g.drawLine(25,180, 575, 180);
    g.drawLine(300, 20, 300, 360);
    g.drawString("Y", 302, 20);
    g.drawString("X", 575, 190);
    Polygon p = new Polygon();
    for(int x = -100; x <= 100; x ++) {
    p.addPoint(x + 300, 180-(int)(80*Math.sin(((x + 300)/200.0)*2*Math.PI)));
    }
    g.drawPolygon(p);
    }
    }
      

  3.   

    抱歉,这是最终版!
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Polygon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class DrawSinFunction extends JPanel{

    private static final long serialVersionUID = 1L; public static void main(String[] args) {
    JFrame frame = new JFrame("Sin(x)");
    frame.getContentPane().add(new DrawSinFunction());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600, 400);
    frame.setVisible(true);
    } protected void paintComponent(Graphics g) {
    super.paintComponent(g); g.setColor(Color.blue);
    g.drawLine(25,180, 575, 180);
    g.drawLine(300, 20, 300, 360);
    g.drawString("Y", 302, 20);
    g.drawString("X", 575, 190);
    Polygon p = new Polygon();
    for(int x = -100; x <= 100; x ++) {
    p.addPoint(x + 300, 180-(int)(80*Math.sin(((x + 300)/200.0)*2*Math.PI)));
    }
    g.drawPolygon(p);
    }
    }注释: 在for循环中的 -100 到 100 为一个周期的长度 ,也就是200
    300 和 180 分别是所画的坐标系的原点在画板上的位置, 80只是一个缩放比例(可以任意选择)