Arc2D.Double包含(double x,double y)方法不起作用

时间:2011-03-08 06:44:34

标签: java user-interface jpanel contains geometric-arc

背景:一些背景信息,这是在Jarame上的JPanel内的JPanel(PiePanel)上进行的。在PiePanel上,我添加了一个Component,它从类Pie中绘制对象,它扩展了Arc2D.Double并以PIE形式创建了Arcs。基本上我正在制作饼图。

我在Pie类中制作常量,使弧形为:x = 20,y = 20,w = 240,h = 240

public TestComponent()  {
    setPreferredSize(new Dimension(280,270));
    pies = new ArrayList<PieChartSlice>();
    Pie a = new Pie(0, 120, Color.black);
    pies.add(a);
    System.out.println(a.contains(150.0,130.0));
    }

由于尺寸是280乘270,并且我用x开始每个馅饼有界框,y = 20和h,w = 240,饼图的中间应该是(140,140)。由于Pie'a'是120度,坐标150,130肯定应该在Pie a中,但它返回false!

似乎a.toString()给出了PieChartSlice @ 0

1 个答案:

答案 0 :(得分:0)

我刚遇到这个问题,虽然我无法在没有看到他们的代码的情况下明确地提供OP问题的答案,但我确实找到了解决我同样问题的方法(弧内的一点显然没有被“看到”。 )

调用构造函数时

Arc2D.Double(double x, double y, double w, double h, double start, double extent,
             int type)

Arc2D.PIE用于int type。其他两种类型对我不起作用。