2016-10-01 59 views
-1

我试图用Graphics.drawPolygon()方法如何绘制与Java的图形边框

三角形是正确绘制来绘制边框的三角形的三角形,但我怎么能计算出边界的3个点?

我已经有一个圆圈做了,但我似乎无法找到三角形的解决方案。

教师因为它不能使用Graphics2D的要求。

我的代码:

if (xPoints != null && yPoints != null) { 
    int[] nXPoints = new int[] { xPoints[0] - borderThickness, xPoints[1] - borderThickness, 
      xPoints[2] - borderThickness }; 
    int[] nYPoints = new int[] { yPoints[0] - borderThickness, yPoints[1] - borderThickness, 
      yPoints[2] - borderThickness }; 

    g.setColor(borderColor); 
    g.fillPolygon(nXPoints, nYPoints, 3); 

    g.setColor(fillColor); 
    g.fillPolygon(xPoints, yPoints, 3); 
} 

编辑: 预期结果

Expected result

+0

我很困惑。如果没有这些要点,你怎么可能画出三角形呢? –

+0

'我如何计算边界的3点?' - 。绘图/填充方法适用于相同的一组点。 – camickr

+0

@JoeC ..我知道不可能没有要点就画出来。我正在寻找一种计算边界点的方法。 –

回答

1

使用Graphics方法drawPolygon()呈现轮廓和fillPolygon(),以填补其内部;两者都有所需的签名,如here所示。

image1

因为“该绘制的图形的轮廓的操作通过遍历像素之间的无限薄的路径与像素大小的笔操作,”铸造图形上下文Graphics2D,这样就可以使用draw()fill()在相应的Shape。这将允许您使用setStroke()指定轮廓,图示here

image2 http://i52.tinypic.com/ndo51u.png

我需要它有一个自定义的厚度......我也不想用Graphics2D

定制厚度Graphics API中的支持。至于建议here,通过paintComponent()收到的实际图形上下文是Graphics2D一个实例,其中确实支持自定义行程的几何形状。

事情是老师没教我Graphics2D,所以我不应该使用它。

然后简单油漆较大三角形,然后越小。如果这不起作用,那么在计算较大的三角形时出现错误,您应该编辑您的问题以包含complete example

+0

感谢您的帮助,但我可以使用相同的边界点,因为我需要它有一个自定义的厚度 –

+0

我也不想使用Graphics2D ...谢谢 –

+0

这两个需求冲突;我已经详细阐述过了。 – trashgod