Hallo,
es soll überprüft werden, ob sich Segmente schneiden. Für den Fall, dass das Segment senkrecht ist klappts auch, aber nicht wenn das Segment waagerecht ist. Habt ihr vielleicht eine Idee warum das so ist? Hier ist der Code:
es soll überprüft werden, ob sich Segmente schneiden. Für den Fall, dass das Segment senkrecht ist klappts auch, aber nicht wenn das Segment waagerecht ist. Habt ihr vielleicht eine Idee warum das so ist? Hier ist der Code:
Java:
public boolean schneidetSegment(Segment s) {
if (istSenkrecht())
// Segment this ist senkrecht.
return(((s.p1.x < p1.x && s.p2.x > p1.x) ||
(s.p1.x > p1.x && s.p2.x < p1.x)) &&
((p1.y < s.p1.y && p2.y > s.p1.y) ||
(p1.y > s.p1.y && p2.y < s.p1.y)));
else // Segment this ist waagerecht,
// im Aufruf von schneidetSegment werden
// daher this und s vertauscht.
// return(s.schneidetSegment(this));};
return
(((p1.x < s.p1.x && p1.x > s.p2.x) ||
( p1.x > s.p1.x && p1.x < s.p2.x)) &&
(( s.p1.y < p1.y && s.p1.y > p2.y) ||
( s.p1.y > p1.y && s.p1.y < p2.y)));};