如何将多边形复制到新位置。我使用e.isPopupTrigger()选择多边形,但是我不知道如何复制它。复制功能类似于翻译功能吗?
例如polygon.translate(x,y)?

谢谢。

编辑:

//此代码不起作用:-(

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();
}

最佳答案

您可以从旧的多边形构造一个新的多边形,然后将其移动到新位置

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


您的代码无效,因为该行

copyPolygon = selectedTriangle;


不制作selectedTriangle的副本,它只是使copyPolygon指向同一对象。因此,您需要构造一个与原始多边形相同的新多边形,这就是我建议中的第一行。

关于java - 将多边形复制到新位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1527653/

10-10 06:24