我目前在家庭作业方面遇到了一些问题。
这是练习:
(绘制正弦和余弦函数)编写一个程序,将正弦函数绘制为红色,余弦函数绘制为蓝色。
提示: Pi 的 Unicode 是\u03c0。要显示 -2Pi,请使用 g.drawString("-2\u03c0", x, y)。对于像 sin(x) 这样的三角函数,x 的单位是弧度。使用以下循环将点添加到多边形p
for (int x = -170; x <= 170; x++) {
p.addPoint(x + 200, 100 - (int)(50 * Math.sin((x / 100.0) * 2 * Math.PI)));
-2Pi 在 ( 100, 100 ),轴心在 ( 200, 100 ),2Pi 在 ( 300, 100 ) 使用Graphics类中的 drawPolyline 方法连接点。
好的,所以我的 sin 函数与练习中的函数有点不同,但它可以工作,所以它应该不是问题。另一方面,余弦函数,我很难找到它的代码,所以我的程序中没有它。
我还需要做的是将 -Pi 和 Pi 放在图表上它们可敬的位置。
所以,这里是代码。
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Exercise13_12 extends JFrame {
public Exercise13_12() {
setLayout(new BorderLayout());
add(new DrawSine(), BorderLayout.CENTER);
}
public static void main(String[] args) {
Exercise13_12 frame = new Exercise13_12();
frame.setSize(400, 300);
frame.setTitle("Exercise13_12");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
class DrawSine extends JPanel {
double f(double x) {
return Math.sin(x);
}
double g(double y) {
return Math.cos(y);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(10, 100, 380, 100);
g.drawLine(200, 30, 200, 190);
g.drawLine(380, 100, 370, 90);
g.drawLine(380, 100, 370, 110);
g.drawLine(200, 30, 190, 40);
g.drawLine(200, 30, 210, 40);
g.drawString("X", 360, 80);
g.drawString("Y", 220, 40);
Polygon p = new Polygon();
for (int x = -170; x <= 170; x++) {
p.addPoint(x + 200, 100 - (int) (50 * f((x / 100.0) * 2
* Math.PI)));
}
g.drawPolyline(p.xpoints, p.ypoints, p.npoints);
g.drawString("-2\u03c0", 95, 115);
g.drawString("2\u03c0", 305, 115);
g.drawString("0", 200, 115);
}
}
}
如果有人有时间帮助我,我将不胜感激。