填充没有填充多边形的三角形?

时间:2013-12-13 17:57:33

标签: java swing awt paint java-2d

所以我写了一个编译的程序,但它不会做我想做的事情。它应该填充三角形而不使用填充多边形。我试图将代码限制为循环。

关键是要使三条线越来越小,以填充三角形的每个部分。 解决这个问题的方法是,我认为应该找出循环应该停止的位置。我猜了三角形的一半高度(140)。

import javax.swing.*;
import java.awt.*;

public class Tri extends JApplet
  {

      int x1=0;
      int y1 = 140;
      int x2 = 120;
      int y2 = 140;
      int x3 = 60;
      int y3;


               public void paint (Graphics page)
               {
                  for (y3= 0; y3<=70; y3++)   
                  {
                  page.drawLine (x1, y1, x2, y2); 
                  page.drawLine (x2, y2, x3, y3);
                  page.drawLine (x3, y3, x1, y1); 


                  y1++;
                  x2--;
                  y2--;
                  x1++;
                  }


               }

   }

1 个答案:

答案 0 :(得分:1)

更改循环逻辑,尝试以下代码

int x1=0;
  int y1 = 140;
  int x2 = 120;
  int y2 = 140;
  int x3 = 60;
  int y3=0;


           public void paint (Graphics page)
           {
              page.drawLine (x1, y1, x2, y2); 
              page.drawLine (x2, y2, x3, y3);
              page.drawLine (x3, y3, x1, y1); 

              for (x1= 0; x1<=120; x1++)     

           {

              page.drawLine (x3, y3, x1, y1);


           }   }

保持两条线不变并通过改变其坐标来改变其他线的位置

有关paint()和重绘的信息,请点击链接

paint() and repaint() in Java `