Advertisement
Guest User

Untitled

a guest
May 26th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. import javafx.geometry.Point2D;
  2.  
  3. public class Kreis {
  4.  
  5. public static void main(String[] Args) {
  6.  
  7. double m1x = 3;
  8. double m1y = 5;
  9. double r1 = 5;
  10.  
  11. double m2x = -1;
  12. double m2y = 1;
  13. double r2 = 1;
  14.  
  15. Point2D[] s = berechneSchnittpunkt(m1x, m1y, r1, m2x, m2y, r2);
  16.  
  17.  
  18. for (int i = 0; i < s.length; i++) {
  19. System.out.println(s[i]);
  20.  
  21.  
  22. }
  23. }
  24.  
  25. private static Point2D[] berechneSchnittpunkt( double m1x, double m1y, double r1, double m2x, double m2y, double r2){
  26.  
  27.  
  28.  
  29. double dx = m1x - m2x;
  30. double dy = m1y - m2y;
  31. double d = Math.sqrt(dx*dx + dy*dy);
  32.  
  33. System.out.println("Abstand: " + d);
  34.  
  35.  
  36. double q = (r1 * r1 - r2 * r2 - d*d) / (-2*d);
  37. System.out.println("q= " + q);
  38. double h2 = r2*r2 - q*q;
  39.  
  40. if(h2>= 0){
  41. double h = Math.sqrt(h2);
  42. double fx = m2x + q*dx/d;
  43. double fy = m2y + q*dy/d;
  44.  
  45. double s1x = fx - h * dy / d;
  46. double s1y = fy + h * dx / d;
  47. double s2x = fx + h * dy / d;
  48. double s2y = fy - h * dx / d;
  49.  
  50. if(h2==0){
  51. return new Point2D[]{new Point2D(s1x, s1y)};
  52. }
  53. return new Point2D[]{new Point2D(s1x, s1y), new Point2D(s2x, s2y)};
  54. }
  55. return new Point2D[0];
  56.  
  57. }
  58.  
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement