Wenn man die "gebogenen Punkte" nur anhand von Punkten auf einer Geraden bildet, kann man höchstens einen Halbkreis erhalten.
Wenn du einen Kreis haben willst, musst du die Punkte auf dem Kreis wie folgt berechnen:
|
Quellcode
|
1
2
|
x = sin(angle) * radius;
y = cos(angle) * radius;
|
Allerdings kann man so nicht auf die Punkte der roten Linie eingehen.
Alternativ könntest du die Punkte nicht nur zwischen Mittelpunkt und Punkt auf roter Linie ermitteln, sondern auch für die auf dem "Kreis" gegenüber liegende Seite. Dazu müsste der Vektor vom Mittelpunkt zum jeweiligen Punkt negiert werden, bevor er mit de Position des Mittelpunkts addiert wird.
Weiterhin sollten dann die grünen Punkte rechts und links vielleicht pauschal gesetzt werden, da sonst an Position unendlich auf der roten Linie ein Punkt vorhanden sein müsste.
Du könntest aber auch schreiben, wofür du denkst, dass dies die richtige Herangehensweise ist. Möglicherweise ist der Ansatz, den du gewählt hast, schon nicht der beste. (Das lässt sich daraus ableiten, dass du Bedenken hast, keinen geschlossenen Kreis zu erhalten.)