我正在尝试绘制一个内部有网格的三角形。很像图纸。我有网格,绘制三角形,但我不知道如何删除多余的网格。当前网格以for循环绘制,直到达到三角形长度的末尾。问题是,这将在三角形顶部绘制一个“网格”框。我可以在多余的东西上绘制以摆脱它吗?我应该以不同的方式绘制线条,还是在大的线条内绘制多个三角形来模拟网格?将不胜感激。
public class TrianglePanel extends JPanel{
final int pixelParameter = 20;
final int HEIGHT = 800, WIDTH = HEIGHT;
public TrianglePanel(){
setPreferredSize(new Dimension(WIDTH,HEIGHT));
setBackground(Color.white);
}
public void paint(Graphics g){
int [] xPoints = {0,WIDTH/2,0};
int [] yPoints = {HEIGHT,HEIGHT,HEIGHT/2};
g.drawPolygon(xPoints, yPoints, 3); // Draws the triangle
for (int i = pixelParameter; i < WIDTH/2; i += pixelParameter){
g.drawLine(i, HEIGHT, i, (HEIGHT/2)); // Draws vertical lines
g.drawLine(0, HEIGHT - i, (WIDTH/2), HEIGHT - i); // Draws horizontal lines
}
}
}
答案 0 :(得分:1)
paintComponent()
方法而不是paint()方法完成的。Polygon
对象。然后,在尝试绘制网格线之前,可以尝试使用Graphics.setClip(Shape)
方法。