首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Piccolo2D中创建无限的节点?

如何在Piccolo2D中创建无限的节点?
EN

Stack Overflow用户
提问于 2014-04-24 19:48:23
回答 1查看 192关注 0票数 1

我想在Piccolo2D中画一些无限的对象,比如无限的矩形(笛卡尔)网格。这将是伟大的有一些几何对象在这个网格上,如在图形编辑器中。

不幸的是,Piccolo以某种方式决定是否需要调用paint,而不是为我适当地这样做。

下面的程序包含黄色对象,我想让它永无止境。它的类型是PEndless。我像个孩子一样给它添加了圆圈。

代码语言:javascript
复制
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)它不支持无限双精度,尽管这在原则上是合法的;如果设置为无限,它根本不会绘制任何东西。

如何实现?

EN

回答 1

Stack Overflow用户

发布于 2014-05-27 18:59:30

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23268030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档