2017-04-03 5 views
-4

Ich habe ein einfaches Point-ObjektSchnittpunkt der letzten Zeilen

public class Point { 
private double x; 
private double y; 
} 

und einfache Linie Objekt

public class Line { 
private Point start; 
private Point end; 
} 

Jetzt brauche ich den Schnittpunkt zweier Linien zu finden, und es ist nicht so einfach, weil die Linien haben Startpunkt und Endpunkt ....

public boolean isIntersecting(Line other) { 
.... 
} 

public Point intersectionWith(Line other) { 
..... 

Irgendwelche ideias?

+5

Das fühlt sich an, als wäre es ein reines Mathematikproblem - es gibt keine Anzeichen dafür, dass das Programmieren das Problem ist. Es gibt * Lasten * von Seiten im Internet über die Mathematik herauszufinden, ob sich Linien schneiden. Hast du schon welche angeschaut? Mit welchen Problemen sind Sie konfrontiert worden? Im Moment sieht diese Frage zumindest so aus * als hätten Sie nicht genug Forschung betrieben. –

+1

Lernen Sie den Algorithmus, um zu überprüfen, ob zwei Liniensegmente sich schneiden, und versuchen Sie, es durch Code zu implementieren. Wenn Sie Probleme bei der Implementierung haben, können Sie es hier fragen. – niyasc

+0

https://www.topcoder.com/community/data-science/data-science-tutorials/geometry-concepts-line-intersection-and-its-applications/ –

Antwort

0

Erstens, ich denke du meinst Liniensegment, Linie hat keinen Anfang und Ende. Dann Startpunkte und Endpunkte in Gleichung y = kx + b; Sie erhalten würden (k1, b1) und (k2, b2),

wenn k1 == k2 und b1! = B2 zwei Linien parallel

wenn k1 == k2 und b1 == b2 zwei Linien gleiche Zeile

wenn k1! = k2 Verwendung y = k1x + b1 und y = K2X + b2 Punkt des Schnittpunktes (x, y)

schließlich vergleichen (x, y) zu erhalten, mit Startpunkte und Endpunkte, um zu sehen, ob es eine Kreuzung gibt.

Verwandte Themen