使用Graphics(java.awt.Graphics)填充三点(java.awt.Point)之间的区域

时间:2013-12-07 23:05:15

标签: java graphics awt java-2d

我的代码中有三个点,我想填充它们之间的区域,或者换句话说,绘制并填充3个点之间的三角形。

我想过简单地使用for循环(从x1到x2)绘制线条,但我认为这不会有效,有没有其他方法可以做到更有效?

2 个答案:

答案 0 :(得分:3)

我会用三个点绘制一个多边形:

Graphics.fillPolygon(int[], int[], int)

答案 1 :(得分:0)

您可以使用缓冲图像并一次绘制一个像素。 BufferedImage比使用gui对象的paintcomponent快得多。在BufferedImage中使用WriteableRaster,然后一次循环一个像素,标记落在三角形内的像素。

您的算法类似于:

equation for line 1
equation for line 2
equation for line 3
then for each point as you loop through writeableraster:  
    check if x and y are each between the three lines

或者,您可以尝试this example,这更像是一种绘画方式。