Я создал простую программу рисования в java. У меня возникла проблема с инструментом стирания. Я не могу позволить пользователю просто нарисовать белую краску для стирания, потому что я хочу, чтобы фон был изображением. Во всяком случае, я пытаюсь сделать это, когда пользователь рисует краской, пытаясь заставить его добавить Line2D в список массивов. Затем я хочу, чтобы пользователь нарисовал белую строку в программе, чтобы показать, что стирается. Когда белая линия попадает в графику, я хочу получить результат. Вот мой код:Java - стирание с помощью Line2D
al = new ArrayList<Line2D>();
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
if(graphics2D != null && paint.erase==false)
{
currentX = e.getX();
currentY = e.getY();
graphics2D.setStroke(new BasicStroke(size));
graphics2D.drawLine(oldX, oldY, currentX, currentY);
repaint();
oldX = currentX;
oldY = currentY;
Line2D test=new Line2D.Float(oldX, oldY, currentX, currentY);
al.add(test);
//New system
}
if (paint.erase==true)
{
currentX = e.getX();
currentY = e.getY();
graphics2D.setStroke(new BasicStroke(size));
graphics2D.drawLine(oldX, oldY, currentX, currentY);
repaint();
for(Line2D name : PadDraw.al) {
boolean result = Line2D.linesIntersect(oldX,oldY,currentX,currentY,name.getX1(),name.getY1(),name.getX2(),name.getY2());
if (result==true)
{
System.out.println("paint found");
}
}
oldX = currentX;
oldY = currentY;
}
}
});
Что вы рисуете? Откуда появляется графический адаптер? – MadProgrammer
Я не думал, что это важно, но это Buffered Image и graphics2D = Buffered Image.createGraphics(); –
Это было потому, что я думал, что вы нарушаете цепочку рисования;) – MadProgrammer