per verificare se due segmenti di linea si intersecano, si può usare API 2D di Java, in particolare i metodi di Line2D.
Line2D line1 = new Line2D.Float(100, 100, 200, 200);
Line2D line2 = new Line2D.Float(150, 150, 150, 200);
boolean result = line2.intersectsLine(line1);
System.out.println(result); // => true
// Also check out linesIntersect() if you do not need to construct the line objects
// It will probably be faster due to putting less pressure on the garbage collector
// if running it in a loop
System.out.println(Line2D.linesIntersect(100,100,200,200,150,150,150,200));
Se siete interessati a scoprire come funziona il codice, al fine di vedere se è possibile renderlo più veloce nel vostro dominio specifico, è possibile controllare the code for OpenJDK implementation. Ma ricorda, sempre profilo prima di ottimizzare; probabilmente è abbastanza veloce come è.
Ti riferisci alle linee geometriche (che si estendono all'infinito)? – likeitlikeit
@ra_htial: stiamo discutendo di quello che stai veramente chiedendo. per favore vedi la discussione sotto la risposta di Andreas Wederbrand. Se la mia modifica non riflette le tue intenzioni, ti preghiamo di modificarla di nuovo. La tua domanda su Java java.awt.geom.Line2D (che secondo i documenti "rappresenta un segmento di linea in (x, y) spazio di coordinate") o linee geometriche che si estendono all'infinito? – oligofren
@ra_htial: potresti accettare una risposta o portare qualcosa alla discussione su ciò che stai chiedendo? – oligofren