Arc2D.Double содержит метод (double x, double y) не работает - PullRequest
0 голосов
/ 08 марта 2011

Фон: Небольшая справочная информация, это происходит на JPanel (PiePanel), которая находится внутри JPanel на JFrame. На PiePanel я добавил компонент, который рисует объекты из класса Pie, который расширяет Arc2D.Double и создает дуги в форме PIE. По сути, я делаю круговую диаграмму.

Я сделал константы в классе 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). Поскольку круговая диаграмма 'a' равна 120 градусам, координаты 150,130 обязательно должны быть в круговой диаграмме a, но она возвращает false !!

Также кажется, что a.toString () дает PieChartSlice @ 0

1 Ответ

0 голосов
/ 01 августа 2013

У меня только что была эта проблема, и хотя я не могу окончательно дать ответ на проблему ОП, не увидев их код, я все же нашел решение моей идентичной проблемы (точка внутри дуги не «видна»).)

При вызове конструктора

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

используйте Arc2D.PIE для int type.Два других типа не работали для меня.

...