为什么使用Processing绘制的圆圈如此锯齿?

时间:2017-08-17 14:08:03

标签: java graphics drawing processing antialiasing

我使用以下代码绘制一个简单的圆圈:

import processing.core.PApplet;

public class A3 extends PApplet {

    public static void main(String[] args) {
        PApplet.main(A3.class.getCanonicalName());
    }

    public void settings() {
        size(800, 600);

    }

    public void draw() {
        background(255);
        stroke(0);
        ellipse(200,200,300,300);
    }

    public void setup() {
        background(255);

    }
}

结果是以下锯齿状的圆圈: The jagged circle

我尝试过使用smooth(8);,但它没有帮助。

1 个答案:

答案 0 :(得分:3)

您希望它看起来像什么?

请注意,您只是真正看到"锯齿状"因为你增加了图片的大小。这是你应该看到的内容:

anti-aliased circle

我不会把这个圈称为锯齿状。实际上,默认情况下,Processing使用消除锯齿功能使图形看起来更加平滑。尝试通过调用noSmooth()函数中的setup()来禁用此功能,您将看到:

non anti-aliased circle

对我来说,看起来更加锯齿状。

您还可以尝试通过调用strokeWeight()函数中的draw()来增加线宽。这是strokeWeight(8)

thick circle

老实说,如果我是你,我就不会担心这一点。处理默认情况下使用消除锯齿功能,因此一切都应该看起来非常合理,没有你做任何特别的事情如果你在任何像素绘图上看得足够近,你就会发现一些锯齿状。