在圆心绘制线并加入另外三个圆以形成正方形

时间:2015-11-27 09:09:00

标签: java

我正在尝试从一个圆圈的中心到另一个圆圈的距离为50。

另外如何确定四个角上的四个圆是由线连接而形成一个我们可以写文本的正方形。

我希望有类似的图表。

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

@SuppressWarnings("serial")
public class MousePanel extends JPanel implements MouseListener,ActionListener{

    private int a,b,a2,b2;
    private int count=0;
public MousePanel(){
    super();
    addMouseListener(this);   
}

public void paint(Graphics g){


    for(int x=5;x<=1000; x=x+50){
        for(int y=5; y<=1000;y=y+50){
    g.drawOval(x,y,15,15);
            System.out.println(x+" "+y);
        }

    }
    if(count==2){
        if(a2>a){
        g.drawLine(a, b, a+50, b);
        }
        else{
            g.drawLine(a, b, a, b+50);
        }
    count=0;
    a=0;
    b=0;
    a2=0;
    b2=0;
    }
}

public void mouseClicked(MouseEvent mouse){   

    count++;

    if(count==1){
        a=mouse.getX();

        b=mouse.getY();

        System.out.println(a+" "+b);
    }

    if(count==2){
        a2 = mouse.getX();
        b2 = mouse.getY();
         System.out.println(a2+" "+b2);
    }

    repaint();
    }

public void mouseEntered(MouseEvent mouse){ }   
public void mouseExited(MouseEvent mouse){ }
public void mousePressed(MouseEvent mouse){ }
public void mouseReleased(MouseEvent mouse){ }

public static void main(String arg[]){
    JFrame frame = new JFrame("MousePanel");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(640,640);

    MousePanel panel = new MousePanel();
    frame.setContentPane(panel);
    frame.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

}
}

这是我的代码。 在这里,我刚刚制作了这个角色。

1 个答案:

答案 0 :(得分:0)

我不知道如何回答你的第一个问题,但我可能会帮你解决第二个问题。为了确定四个圆的中心是否是正方形的角,角必须彼此相距一定距离。首先,选择一个角落。然后测量其他点远离所选点的距离。假设正方形的长度为X,则其中两个距离为X,其中一个为sqrt(2)* X.

要确定两点之间的距离,请使用毕达哥拉斯定理。

xDistance = point1.x - point2.x;
yDistance = point1.y - point2.y;
distance = sqrt(xDistance*xDistance + yDistance*yDistance);