2014-02-25 4 views
0

Я пытаюсь нарисовать треугольник с сеткой внутри. Очень похоже на графическую бумагу. У меня есть сетка, и треугольник нарисован, но я не знаю, как удалить лишнюю сетку. Сетка в настоящее время рисуется в цикле 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 
    } 
    } 
} 

ответ

1
  1. на заказ картина делается путем переопределения paintComponent() метод, метод не краска().
  2. Не забудьте вызвать super.paintComponent() в начале, чтобы фон был нарисован.
  3. Создайте объект Polygon. Затем вы можете попробовать использовать метод Graphics.setClip(Shape), прежде чем пытаться нарисовать линии сетки.
Смежные вопросы