Hi,
ich habe ein Problem undzwar habe ich einige Objekte in einem Vector und zwei "Knotenpunkte".
Zwischen diesen Knotenpunkten setze ich vier Line2D.Double.
Nun gehe ich mit einer forschleife jedes Objekt des Vectors durch und prüfe ob das Objekt eins der Linien überschneiden. Dies mache ich mit intersectsLine. intersectsLine gibt aber immer nur false zurück, also das sie sich nicht schneiden. Ich habe auch alle Objekte wirklich so gesetzt, dass es sich schneiden müsste!
Hier der Quellcode:
ich habe ein Problem undzwar habe ich einige Objekte in einem Vector und zwei "Knotenpunkte".
Zwischen diesen Knotenpunkten setze ich vier Line2D.Double.
Nun gehe ich mit einer forschleife jedes Objekt des Vectors durch und prüfe ob das Objekt eins der Linien überschneiden. Dies mache ich mit intersectsLine. intersectsLine gibt aber immer nur false zurück, also das sie sich nicht schneiden. Ich habe auch alle Objekte wirklich so gesetzt, dass es sich schneiden müsste!
Hier der Quellcode:
Java:
for(ListIterator<Node> firstNode = nodeVector.listIterator(); firstNode.hasNext();){
Node startNode = firstNode.next();
for(ListIterator<Node> secondNode = nodeVector.listIterator(); secondNode.hasNext();){
boolean b = true;
Node endNode = secondNode.next();
linksoben = new Line2D.Double(startNode.getX(), startNode.getY(), endNode.getX(), endNode.getY());
linksunten = new Line2D.Double(startNode.getX(), startNode.getMaxY(), endNode.getX(), endNode.getMaxY());
rechtsoben = new Line2D.Double(startNode.getMaxX(), startNode.getY(), endNode.getMaxX(), endNode.getY());
rechtsunten = new Line2D.Double(startNode.getMaxX(), startNode.getMaxY(), endNode.getMaxX(), endNode.getMaxY());
for(ListIterator<Object> it = vector.listIterator(); it.hasNext();){
Object o = it.next();
if(o.intersectsLine(linksoben) || o.intersectsLine(linksunten) || o.intersectsLine(rechtsoben) || o.intersectsLine(rechtsunten)){
b = false;
}
}
startNode.setInArray(endNode.getID(), b);
}
}