【问题标题】:draw line at center of circle and join another three circle to form a square在圆心画线并加入另外三个圆形成一个正方形
【发布时间】:2015-11-27 09:09:00
【问题描述】:

我正在尝试从一个圆的中心画线到另一个距离为 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

}
}

这是我的代码。 在这里,我刚刚做了卷饼。

【问题讨论】:

  • 这里的主要问题是纯几何问题,与Java无关,因此您可以考虑使用不同的标签,以便合适的人看到。

标签: java


【解决方案1】:

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

要确定两点之间的距离,请使用勾股定理。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多