java中怎样绘制正弦函数图象

 我来答
不落的太阳Sean
2016-12-08 · TA获得超过281个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:176万
展开全部

一下为一个代码示例

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

/**
 * @author <a href="mailto:ge.y.yang@hotmail.com">杨舸</a>
 * @version 1.0.0
 * @since jdk 1.8
 */

class Diagram extends JPanel {
    static final int SCALEFACTOR = 200;
    int cycles;
    int points;
    double[] sines;
    int[] pts;
    Diagram() {

    }
    public  void setCycles(int newCycles) {
        cycles = newCycles;
        points = SCALEFACTOR * cycles * 2;
        sines = new double[points];
        for (int i = 0; i < points; i++) {
            double radians = (Math.PI / SCALEFACTOR) * i;
            sines[i] = Math.sin(radians);
        }
        repaint();
    }
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        int maxWidth = getWidth();
        double hstep = (double) maxWidth / (double) points;
        int maxHeight = getHeight();
        pts = new int[points];
        for (int i = 0; i < points; i++)
            pts[i] = (int) (sines[i] * maxHeight / 2 * .95 + maxHeight / 2);
        g.setColor(Color.BLUE);
        for (int i = 1; i < points; i++) {
            int x1 = (int) ((i - 1) * hstep);
            int x2 = (int) (i * hstep);
            int y1 = pts[i - 1];
            int y2 = pts[i];
            g.drawLine(x1, y1, x2, y2);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 200);
        Diagram sines = new Diagram();
        sines.setCycles(5);
        frame.getContentPane().add(sines);
        frame.setVisible(true);
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式