我的代码中有三个点,我想填充它们之间的区域,或者换句话说,绘制并填充3个点之间的三角形。
我想过简单地使用for循环(从x1到x2)绘制线条,但我认为这不会有效,有没有其他方法可以做到更有效?
答案 0 :(得分:3)
我会用三个点绘制一个多边形:
答案 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,这更像是一种绘画方式。