【发布时间】:2022-11-17 02:52:46
【问题描述】:
我目前正在使用 3d 引擎,但在编写自己的方法来绘制填充多边形时遇到了一个非常烦人的问题。我需要这个的原因是我必须确定任何给定的像素是否应该由于遮挡而逐个像素地绘制。我读过关于使用 Graphics.drawLine();使用相同的 xy 坐标来生成一个点并使用 1 x 1 甚至 0 x 0 的正方形来绘制像素但是这些对我来说都有问题,使用线法绘制,如下所示:
for (int x = min_x; x < max_x; x++) {
for (int y = min_y; y < max_y; y++) {
if (inp.contains(x, y)){
g.drawLine(x, y, x, y);
}
}
}
}
使用强力方法产生一堆点而不是填充形状 image example of dots
另一个使用正方形会产生锯齿状的边缘:example of jagged shape 任何帮助是极大的赞赏。
【问题讨论】:
-
您可以创建一个与您的
JPanel大小相同的BufferedImage。您可以为BufferedImage中的单个像素着色,或者您可以处理图像光栅。然后你会在JPanel上绘制BufferedImage。您可以直接在JPanel上使用Graphics2D方法,并设置抗锯齿。