这个是画四面体的程序,可是总是不显示任何东西,是不是GeneralPath的lineTo方法用的有问题啊?import java.awt.*;
import java.applet.Applet;
import java.awt.geom.*;public class MyTest11 extends Applet
{private float x[],y[];
 public void init()
{x=new float[4];
 y=new float[4];
 x[0]=100;
 y[0]=100;
 x[1]=100;
 y[1]=200;
 x[2]=50;
 y[2]=250;
 x[3]=150;
 y[3]=250;
 resize(500,500);
}
public void paint(Graphics g)
{Graphics2D g2d=(Graphics2D)g;
g2d.setPaint(Color.red);
 g2d.translate(500,500);
 GeneralPath tour=new GeneralPath();
 tour.moveTo(x[0],y[0]);
for(int i=1;i<x.length;i++)
 tour.lineTo(x[i],y[i]);
 tour.lineTo(x[1],y[1]);
 tour.lineTo(x[2],y[2]);
 tour.lineTo(x[3],y[3]);
 tour.lineTo(x[0],y[0]);
 tour.lineTo(x[2],y[2]);
 tour.lineTo(x[1],y[1]);
 tour.lineTo(x[3],y[3]);
 tour.closePath();
}
}

解决方案 »

  1.   

    这个本来就是applet程序啊。能够解释的清楚些吗?谢谢!
      

  2.   

    public void paint(Graphics g)
    {
    Graphics2D g2d=(Graphics2D)g;
    g2d.setPaint(Color.red);
    //g2d.translate(500,500);
    GeneralPath tour=new GeneralPath();
    tour.moveTo(x[0],y[0]);
    for(int i=1;i<x.length;i++)
    tour.lineTo(x[i],y[i]);
    tour.lineTo(x[1],y[1]);
    tour.lineTo(x[2],y[2]);
    tour.lineTo(x[3],y[3]);
    tour.lineTo(x[0],y[0]);
    tour.lineTo(x[2],y[2]);
    tour.lineTo(x[1],y[1]);
    tour.lineTo(x[3],y[3]);
    tour.closePath();
    g2d.draw(tour);
    }
      

  3.   

    for(int i=1;i<x.length;i++)
    tour.lineTo(x[i],y[i]);
    tour.lineTo(x[1],y[1]);
    tour.lineTo(x[2],y[2]);
    tour.lineTo(x[3],y[3]);
    tour.lineTo(x[0],y[0]);
    tour.lineTo(x[2],y[2]);
    tour.lineTo(x[1],y[1]);
    tour.lineTo(x[3],y[3]);这段好像很多多余。
      

  4.   

    import java.awt.*;
    import java.applet.Applet;
    import java.awt.geom.*;public class MyTest extends Applet {
        private float x[],y[];
        public void init(){
            x=new float[4];
            y=new float[4];
            x[0]=100;
            y[0]=100;
            x[1]=100;
            y[1]=200;
            x[2]=50;
            y[2]=250;
            x[3]=150;
            y[3]=250;
            resize(500,500);
        }
        public void paint(Graphics g){
            Graphics2D g2d=(Graphics2D)g;
            g2d.setPaint(Color.red);
            GeneralPath tour=new GeneralPath();
            tour.moveTo(x[0],y[0]);
            for(int i=1;i<x.length;i++)
                tour.lineTo(x[i],y[i]);
            tour.lineTo(x[1],y[1]);
            tour.lineTo(x[2],y[2]);
            tour.lineTo(x[3],y[3]);
            tour.lineTo(x[0],y[0]);
            tour.lineTo(x[2],y[2]);
            tour.lineTo(x[1],y[1]);
            tour.lineTo(x[3],y[3]);
            tour.closePath();
            g2d.draw(tour);
        }}// ok
      

  5.   

    对比了一下原来是g2d.translate(500,500);这句捣的鬼,不过我想不明白,为什么会影响程序的显示这个只是起到改变原坐标系的位置而已啊。
      

  6.   

    原因很简单,都在jdk里呢。查查api就知道乐