安徽省信访局邮寄地址:java里面如何画一个sinx图像?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 17:43:01
我自己写了一个 。但是输出的时候却是一个错误的图像。大家帮忙看看程序哪里有问题。最好能帮忙调试调试。告诉我哪里要改。
//A program to draw a graph of "y=sin(x)".
//Written by jameyli,nov 2005.
//Revsion History:none.
import java.awt.*;
import java.awt.geom.*;
public class Sinx1 extends DrawPanel{
public static void main(final String[] args){
DrawFrame frame=new DrawFrame("Drawing of a graph.");
Sinx1 drawing=new Sinx1(600,200);
frame.add(drawing);
frame.pack();
frame.centreOnScreen();
frame.setVisible(true);
}
public Sinx1(){}
public Sinx1(final int w,final int h){
super(w,h);
}
void DrawXaxis(final Graphics2D g2d){
Line2D line=new Line2D.Double(50,100,500,100);
g2d.draw(line);
for(int i=1;i<8;++i){
if (i!=0){
line.setLine((i*50)+50,100,(i*50)+50,105);
g2d.draw(line);
}
g2d.drawString(new Integer(i).toString(),(i*50)+42,120);
}
}
void DrawYaxis(final Graphics2D g2d){
Line2D line=new Line2D.Double(50,180,50,20);
g2d.draw(line);
for(int i=1;i<4;++i){
line.setLine(50,i*50,45,i*50);
g2d.draw(line);
g2d.drawString(new Integer(2-i).toString(),35,i*50);
}
}
void points(final Graphics2D g2d){
double xoffset=50;
double yoffset=100;
Rectangle2D rectangle=new Rectangle2D.Double(0,0,0,0);
double increment = 2*3.14/300;
double x=0.0;
while(x<=2*Math.PI){
int i=200;
x+=increment;
rectangle.setRect(x*50+xoffset,50*Math.sin(x)+yoffset,1,1);
g2d.draw(rectangle);
}
}
public void paint(final Graphics g){
Graphics2D g2d=(Graphics2D)g;
DrawXaxis(g2d);
DrawYaxis(g2d);
points(g2d);
}
}