如何使用Java绘制不完整多边形
我想做的是使用Java绘制一个不完整的多边形。我已经知道如何在一次拍摄中只绘制多边形,甚至填充多边形。我也可以使用线段绘制不完整的多边形,但问题是如何使用Java绘制不完整多边形,java,user-interface,graphics,polygon,Java,User Interface,Graphics,Polygon,我想做的是使用Java绘制一个不完整的多边形。我已经知道如何在一次拍摄中只绘制多边形,甚至填充多边形。我也可以使用线段绘制不完整的多边形,但问题是基本行程。JOIN_斜角不适用于线段。以下是我如何处理线段的方法: //polygon is not Java's Polygon, my own implementation, and the methods do as //they imply for(int i = 0; i < polygon.getNumberOfPoints(); i
基本行程。JOIN_斜角
不适用于线段。以下是我如何处理线段的方法:
//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]));
}
}
//polygon不是Java的polygon,我自己的实现,方法如下
//他们暗示
对于(int i=0;i
这工作很好,但它不完全工作,我想它。
g.setStroke(/*这里的stuff*/)代码>对关节没有影响。创建一个Path2D.Double,但不要调用closePath()
Path2D.Double path=新的Path2D.Double();
对于(int i=0;i 创建一个Path2D.Double,但不要调用closePath()
Path2D.Double path=新的Path2D.Double();
对于(int i=0;i 我完全错过了一个方法
g.drawPolyline(int[] xCoords, int[] yCoords, int numPoints)
这解决了我的问题。我完全错过了一个方法
g.drawPolyline(int[] xCoords, int[] yCoords, int numPoints)
这解决了我的问题。我尝试使用Path2D.Double,但问题是多边形的最后一端将从我上次单击的位置跟随我的鼠标,甚至使用Path2D.Double。它的反应似乎与绘制第一个点和最后一个点不相等的多边形相同,java无论如何都会在它们之间绘制一条线。我会再试一次,看看我是否看过头了。我尝试过使用Path2D.Double,但问题是多边形的最后一端会从我上次单击的位置跟随我的鼠标,甚至使用Path2D.Double。它的反应似乎与绘制第一个点和最后一个点不相等的多边形相同,无论如何,java将在它们之间划清界限。我会再试一次,看看我是否看过头了。