Verschiedene Winkel u. Bogenradius im GeneralPath kombinieren. DRINGEND!

Matze

Weltenwanderer
Hi,

Ich habe da ein ganz dringendes Problem. Und zwar muss ich mit einem GeneralPath eine Figur zeichnen. Allerdings weis ich nicht wie ich die Winkel, bzw Bogenmaße so hinbekommen soll (ich kenne quad und curveTo). Es muss nicht genau sein, allerdings sollte es noch annähernd stimmen, wenn das ganze Objekt mit vergrößerten Werten gezeichnet werden soll.

Im Anhang ist der schwierige Teil der Zeichnung zu sehen. Die obere Kurve soll einem Radius von 15 px entsprechen, die zweite von 150 px und die dritte von 10.
 

Anhänge

  • Winkel.png
    Winkel.png
    3,9 KB · Aufrufe: 27
Ich muss diesen Thread noch einemal hochhohelne, da ich wieder (oder immernoch) vor dem Problem stehe.

Ich habe eine Rundung und die muss genau der Rundung eines Bogenradiuses von 200 entsprechen. Dies ist wichtig, da eine andere Zeichnung angefügt werden kann, die ebenfalls einen solchen Bogen aufzuweisen hat, damit sie natlos passt. Das ganze soll in einen GeneralPath gezeichnet werden.

Ich bitte um Hilfe.
 

Anhänge

  • Beispiel1.png
    Beispiel1.png
    596 Bytes · Aufrufe: 344
Geht es dir jetzt noch um das erste oder zweite Problem?

Ist das Problem die ganzen Punkte zu berechnen oder das ganze einzuzeichnen?

Woher kommt die Zeichnung? Hast du noch mehr Maße zur Verfügung?

Soviel wie ich davon verstehe handelt es sich mit den von dir gegebenen Maßen um ein Mathematisches Problem und dann wärst du in einem Mathe-Forum wohl besser aufgehoben.

Zu meiner Abi-Zeit hätte ich das wohl noch lösen können, aber ist doch schon ein wenig lange her.

Vielleicht findest du aber auch ein gutes Spline-Applet mit welchem du das nachbilden kannst und welches dir nen Path gibt.
 
Danke erstmal, dass wenigstens einer mal antwortet.
Es geht hier mehr um die 2te Frage. Problem ist das Berechnen, aber größtenteils das Einzeichnen.

Die rote Linie in der Zeichnung ist das Problem. Der grüne Punkt zeigt den Startpunkt. Mit einem Arc2D kann man so etwas zwar gut zeichenen, allerdings weiß ich nicht genau wie viel Grad die Linie "lang ist". Ich habe nur eine Angabe, dass sie 84 hinunterreichen soll (Maßeinheit sind übrigens Pixel).

Das 2te Problem: Wie bekomme ich einen Arc2D oder wenigstens einen Arc in einen GeneralPath oder etwas änliches? Auf jedenfall muss am Schluß ein Shape-Objekt herraus kommen, welches die komplette Zeichnung enthält und transformierbar ist. kurvTo oder quadTo sind da leider zu ungenau.
 

Anhänge

  • Bogen.png
    Bogen.png
    3,5 KB · Aufrufe: 19
Zuletzt bearbeitet:
Problem gelöst.

Zu Frage 1: Vector1 = Startpunkt und Mittelpunkt; Vector2 = Endpunkt und Mittelpunkt. Man rechnet den (Vector1 - Vector2) / (Betrag von Vector1 * Betrag von Vector2) und dass Ergebniss durch die aCos-Funktion laufen lassen und alles dann in Grad umrechnen.

Zu Frage 2: Man kann einen Arc2D-Objekt einfach in einen GeneralPath zeichenen, nur sollte man nicht so wie ich nicht schreiben
Java:
new Arc2D(...)
:-(sondern
Java:
new Arc2D.Double(...)
 
Zurück