It bothers me, my code runs and runs, but when I go to run it, it seems like I'm looping twice into loops, can someone help me with my logic? Thanks...
package pkgcirc; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.*; public class Main extends JPanel { int[] radius = new int [3]; int[] xArray = new int [3]; int[] yArray = new int [3]; public Main() { Random g = new Random(); setPreferredSize (new Dimension(300, 200)); for(int i = 0; i < radius.length; i++) { radius[i] = g.nextInt(50)+1; xArray[i] = g.nextInt(250)+1; yArray[i] = g.nextInt(150)+1; } } public void paintComponent(Graphics page) { super.paintComponent(page); for(int i = 0; i < radius.length; i++) { for (int j = 0; j < radius.length; j++) { int xpoint1 = xArray[i]+radius[i]; int ypoint1 = yArray[i]+radius[i]; int xpoint2 = xArray[j]+radius[j]; int ypoint2 = yArray[j]+radius[j]; int radius1 = radius[i]; int radius2 = radius[j]; boolean Collide = circlesCollide(xpoint1, ypoint1, radius1, radius2, xpoint2, ypoint2); if (i != j && Collide == false) { page.setColor(Color.cyan); page.fillOval(xArray[i] ,yArray[i], radius[i], radius[i]); System.out.println("false"); } else{ System.out.println("true"); page.setColor(Color.black); page.drawOval(xArray[j] ,yArray[j], radius[j], radius[j]); } } System.out.println("BREAK"); } } public boolean circlesCollide(double x1, double y1, double r1, double x2, double y2, double r2){ return (distance(x1, y1, x2, y2) <= (r1 + r2)); } public double distance(double x1, double y1, double x2, double y2) { return Math.sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))); } public static void main (String[] args) { JFrame frame = new JFrame ("Circles"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.getContentPane().add (new Main()); frame.pack(); frame.setVisible(true); } }
novar
source share