Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将绘制的椭圆圆转换为x、y坐标_Java_Arrays_Drawing_Store_Geometry - Fatal编程技术网

Java 将绘制的椭圆圆转换为x、y坐标

Java 将绘制的椭圆圆转换为x、y坐标,java,arrays,drawing,store,geometry,Java,Arrays,Drawing,Store,Geometry,我想将绘制的圆转换为x,y坐标,并存储在数组或字符串中。我必须使用这个数组来存储帧中的图像文件 private final DrawingPanel panel = new DrawingPanel(); private static int[] generateRandomValues(int maxX, int maxY, int minSize, int maxSize) { Rand

我想将绘制的圆转换为x,y坐标,并存储在数组或字符串中。我必须使用这个数组来存储帧中的图像文件

private final DrawingPanel panel = new DrawingPanel();

    private static int[] generateRandomValues(int maxX, int maxY, 
                                       int minSize, int maxSize) {
        Random random = new Random();
        int[] values = new int[3];
        values[0] = random.nextInt(maxX);
        values[1] = random.nextInt(maxY);
        values[2] = Math.min(random.nextInt(maxSize) + minSize, maxSize);
        return values;
    }

    static class Circle {

        int x, y, width, height;

        public Circle(int x, int y, int width, int height) {
            this.x = x;
            this.y = y;
            this.width = width;
            this.height = height;
        }

        public void draw(Graphics g) {
            g.drawOval(x, y, width, height);
        }
    }

    static class DrawingPanel extends JPanel {

        List<Circle> circles = new ArrayList<>();

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            for (Circle circle : circles) {
                circle.draw(g);
            }
        }

        public void addCircle(Circle circle) {
            circles.add(circle);
            repaint();
        }

        @Override
        public Dimension getPreferredSize() {
            return new Dimension(400, 400);
        }
    }
我以后必须以图像格式存储数组

这是什么意思?点数组不是图像

如果您想知道屏幕上绘制的内容,则可以:

  • 创建面板的缓冲区图像。请参阅以获取一种简单的方法

  • 然后您可以一次遍历一个像素的BuffereImage。如果像素的颜色不等于面板背景的颜色,则表示您在那里绘制了一些内容。因此,将该像素的x/y值保存在ArrayList中

  • 我以后必须以图像格式存储数组

    这是什么意思?点数组不是图像

    如果您想知道屏幕上绘制的内容,则可以:

  • 创建面板的缓冲区图像。请参阅以获取一种简单的方法

  • 然后您可以一次遍历一个像素的BuffereImage。如果像素的颜色不等于面板背景的颜色,则表示您在那里绘制了一些内容。因此,将该像素的x/y值保存在ArrayList中


  • 您如何检测所绘制的内容?请查看我编辑的问题。不确定您的意思。你能不能不只是列出。添加(circleValues)?
    我想把画出来的圆转换成x,y坐标
    -你是什么意思?在圆类中有x/y坐标。你真的需要学习如何问一个我们能理解的问题。它只会给我圆心的x和y坐标,而不是整个圆的坐标。我想把这个圆表示成一组小直线,上面有一个x,y坐标的列表,比如一个半径为(1,1,5,5)“1”的圆,列表=[(x,y坐标),(等),(等),(5,5)]的圆,它位于圆上。你如何检测出画了什么?请看我编辑的问题。不确定你的意思。你能不能不只是列出。添加(circleValues)?
    我想把画出来的圆转换成x,y坐标
    -你是什么意思?在圆类中有x/y坐标。你真的需要学习如何问一个我们能理解的问题。它只会给我圆心的x和y坐标,而不是整个圆的坐标。我希望圆被表示为一组小直线,带有x,y坐标的列表,比如位于圆上的半径为(1,1,5,5)“1”列表=[(x,y坐标),(等),(等),(5,5)]的圆。
    DrawingPanel drawPane = new DrawingPanel();
    int[] circleValues = generateRandomValues(300, 300, 50, 150);
                    int x = circleValues[0];
                    int y = circleValues[1];
                    int width = circleValues[2];
                    int height = width;
                    Circle circle = new Circle(x, y, width, height);
                    drawPane.addCircle(circle);