Ich habe ein Programm, wo ich zwei Linien zeichnen kann, wenn ich den Start- und Endpunkt für diese Linien ausgewählt habe, berechnet es den Punkt, wo sie sich schneiden werden. Ich möchte eine Linie zeichnen, ausgehend vom Schnittpunkt, genau in der Mitte dieser beiden Linien.java zeichne Linie auf Schnittpunkt von zwei Linien
im Winkel zwischen den beiden Linien wie diese Berechnung:
double angle(Line pL1, Line pL2){
double angle = Math.toDegrees(Math.atan2(pL2.p1.y - pL1.p1.y, pL2.p1.x - pL1.p1.x));
if(angle < 0){
angle += 360;
}
return angle;
}
und erzeugen dann die neue Linie wie folgt aus:
double newAngle = Math.toRadians(drawAngle);
System.out.println(newAngle);
double x = pI.x + 80 * Math.sin(newAngle);
double y = pI.y + 80 * Math.cos(newAngle);
Point2D.Double endPoint = new Point2D.Double(x,y);
Line l3 = new Line(pI,endPoint);
wo pI
ist der Punkt, Kreuzung. Die Zeile endet jedoch immer mit dem falschen Winkel. Wie kann ich diesen Code so umschreiben, dass die Linie exakt zwischen den beiden anderen Linien gezeichnet wird, wie im obigen Beispielbild?
EDIT:
Können Sie uns bitte zeigen die visuelle Ausgabe Ihrer Methode? – Maia
@Maia hinzugefügt die Ausgabe – FrankK
Welcher Punkt ist Punkt eins auf den beiden Linien? Wo soll die Linie hin? Vielleicht fügen Sie es in einer anderen Farbe hinzu. – matt