gpt4 book ai didi

Java 正弦和余弦

转载 作者:行者123 更新时间:2023-12-01 23:57:49 24 4
gpt4 key购买 nike

你好,我正在尝试创建一个java程序,它允许你绘制一个方程,到目前为止它运行良好,直到我想要它绘制余弦和正弦函数。当正弦和余弦返回 double 但drawLine只接受整数时,我很困惑如何做到这一点。我是 java 新手,所以这可能很容易,但如果您能提供帮助,我将不胜感激。

这是我的代码:

import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
import java.lang.Math;
import java.awt.geom.*;

class PlotGraph extends JFrame{


public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;

g.drawLine(50, 300, 550, 300); //x axis
g.drawLine(300, 550, 300, 50); //y axis
//Orignin x = 300 y = 300

double xmin, xmax;
double y;
xmin =(0);
xmax = 100;
double x = xmin;

double form = Math.cos(x);

double last_y = 300-(form);

for (x = xmin+1; x<=xmax; x++){
double newForm = Math.cos(x);
y = 300-(newForm);
g2.draw(new Line2D.Double(x-1+(300), last_y, x+300, y));
last_y = y;

}




}

public static void main(String [] args) {

PlotGraph graph = new PlotGraph();
graph.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
graph.setSize(600, 600);
graph.setVisible(true);
graph.setTitle("PlotGraph");

}
}

最佳答案

由于 Math.cos() 返回 -1 和 1 之间的值,因此转换为 int 将仅产生 3 个值 -1、0 和 1,并且几乎总是 0。

您想要做的是将 double 乘以一个大常量来创建一个整数范围:

    y = 300-(int)(300d * newForm);

请注意 300 后面的“d”:这使得 300 成为双倍,如果乘法也加倍,则结果也会加倍,这样可以保持细粒度。

关于Java 正弦和余弦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com