Скопировать полигон на новое место - PullRequest
0 голосов
/ 06 октября 2009

Как я могу скопировать полигон на новое место. Я использую e.isPopupTrigger(), чтобы выбрать многоугольник, но я не знаю, как его скопировать. Функция копирования похожа на функцию перевода? например polygon.translate (х, у)

Спасибо.

РЕДАКТИРОВАНИЕ:

// этот код не работает: - (

if(e.getSource() == Copy){  
  Polygon copyPolygon = new Polygon();
  copyPolygon = selectedTriangle;
  copyPolygon.translate(2, 2);
  repaint();
}

Проблема была решена с помощью этого кода: -)

if(e.getSource() == Copy){    
  Polygon copyPolygon = new Polygon(selectedTriangle.xpoints,selectedTriangle.ypoints,selectedTriangle.npoints);
  copyPolygon.translate(10,10);
  triangles.add(copyPolygon);
  repaint();
}           

1 Ответ

1 голос
/ 06 октября 2009

Вы можете построить новый многоугольник из старого, а затем переместить этот многоугольник в новое место

Polygon newPolygon = new Polygon(oldPolygon.xpoints, oldPolygon.ypoints, oldPolygon.npoints);
newPolygon.translate(newXPos, newYPos);

Ваш код не работает, потому что строка

copyPolygon = selectedTriangle;

Не делает копию selectedTriangle, он просто указывает copyPolygon на тот же объект. Поэтому вам нужно создать новый многоугольник, идентичный оригиналу, что и делает первая строка в моем предложении.

...