如何在Piccolo2D中创建无尽(无限)节点



我想在Piccolo2D中绘制一些无限对象,比如无尽的矩形(笛卡尔)网格。在这个网格上有一些几何对象会很棒,就像在图形编辑器中一样。

不幸的是,短笛不知何故决定了,是否需要调用油漆,并没有为我专门做这件事。

下面的程序包含黄色的对象,我想让它无穷无尽。它的类型是PEndless。我小时候就在上面加圆圈。

package tests.endless;
import java.awt.Color;
import java.awt.geom.Rectangle2D;
import org.piccolo2d.PNode;
import org.piccolo2d.extras.PFrame;
import org.piccolo2d.nodes.PPath;
import org.piccolo2d.util.PPaintContext;
public class Try_PGrid {
    public static class PEndless extends PNode {
        @Override
        protected void paint(PPaintContext paintContext) {
            Rectangle2D localClip = paintContext.getLocalClip();
            paintContext.getGraphics().setColor(Color.yellow);
            paintContext.getGraphics().fill(localClip);
        }
    }
    public static void main(String[] args) {
        new PFrame() {
            @Override
            public void initialize() {
                PPath circle = PPath.createEllipse(0, 0, 100, 100);
                PEndless grid = new PEndless();
                grid.addChild(circle);
                //grid.setBounds(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY); // not working at all
                //grid.setBounds(-10, -10, 50, 50); // yellow until circle visible
                grid.setBounds(-1000, -1000, 2000, 2000); // yellow until bounds
                getCanvas().getLayer().addChild(grid);

            }

        };
    }
}

不幸的是,我发现:

1) 如果边界是默认的(空的),那么只有当圆圈是可见的时才画黄色

2) 如果边界是大的和有限的,那么黄色在边界内

3) 它不支持无限双打,尽管这在原则上是合法的;如果设置为无穷大,则根本不会绘制任何内容。

如何实施?

这是Java处理绘图的一部分。

请在此处查看有关此问题的更多信息以及如何防止此问题的指南。

相关内容

  • 没有找到相关文章

最新更新