gpt4 book ai didi

java - 为什么小程序不能正确绘制三角函数的图形?

转载 作者:行者123 更新时间:2023-12-01 10:05:25 25 4
gpt4 key购买 nike

我是 Java Swing 的初学者。我试图在 applet 中绘制 sin(x) 的图形。我很惊讶为什么小程序总是只绘制我的轴而不是我的图表?这是我的代码:

import java.applet.Applet;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;

public class NewApplet extends Applet
{

public void init()
{
// TODO start asynchronous download of heavy resources
}
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
//get dimension
Dimension appletSize = this.getSize();
// make the applet empty at start
g2.setBackground(Color.white);
g2.setColor(Color.white);
g2.fillRect(0, 0, appletSize.width, appletSize.height);
//now draw all you need
g2.setColor(Color.red);
//x axis
g2.drawLine(0, appletSize.height/2, appletSize.width, appletSize.height/2);
//y axis
g2.drawLine(appletSize.width/2, 0, appletSize.width/2, appletSize.height);
//function
g2.setColor(Color.black);
for(int k=0; k<=180; k++)
{
g2.drawString(".", (float) Math.toRadians(k), (float) Math.sin(Math.toRadians(k)));
}
}
}

我正在用 String "."绘制 180 个 sin(x) 点。 ,但我的小程序没有显示任何情节。为什么?

[提及是否有我应该遵循的良好实践或建议我任何用于绘制图表的优秀库(JAR)]

最佳答案

它实际上绘制一个图表。

由于正弦值在-1和+1之间,弧度值在0+π和-π之间,所以图形是在这些坐标处绘制的。

如果更改此行:

g2.drawString(".", (float) Math.toRadians(k), (float) Math.sin(Math.toRadians(k)));

到这一行:

g2.drawString(".", (appletSize.height/2)+(float) Math.toRadians(k)*50, (appletSize.width/2)+(float) Math.sin(Math.toRadians(k))*50);

您将看到一半的图表(因为您已经编写了一半图表的代码。)

这里:

  • 我将 (appletSize.height/2)(appletSize.width/2) 添加到值中,将它们带到屏幕中央(在图)
  • 我将它们乘以 50 以使图表变大,否则图表太小而无法理解。

关于java - 为什么小程序不能正确绘制三角函数的图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516783/

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