我想要做的是使用 Java 绘制一个不完整的多边形。我已经弄清楚如何一次只绘制多边形,甚至填充多边形。我还可以使用线段绘制不完整的多边形,但问题是 BasicStroke.JOIN_BEVEL
不适用于线段。以下是我使用线段的方法:
//polygon is not Java's Polygon, my own implementation, and the methods do as
//they imply
for(int i = 0; i < polygon.getNumberOfPoints(); i++){
Point2D.Double first = polygon.getPoint(i);
Point2D.Double second = new Point2D.Double();
if(polygon.getPoint(i+1) != null){
second = polygon.getPoint(i+1);
trans1 = /* some graphic translation of first */
trans2 = /* some graphic translation of second */
g.setColor(polygon.getColor());
g.setStroke(new BasicStroke(polygon.getWeight(), BasicStroke.JOIN_BEVEL, BasicStroke.CAP_BUTT));
g.draw(new Line2D.Double(trans1[0], trans1[1], trans2[0], trans2[1]));
}
}
这工作得很好,但它并不完全按照我想要的方式工作。 g.setStroke(/*stuff here*/);
对关节没有影响。
最佳答案
好吧,我完全错过了一个方法。
g.drawPolyline(int[] xCoords, int[] yCoords, int numPoints)
这解决了我的问题。
关于java - 如何使用Java绘制不完整的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408282/