Moin Matthias,
- Wenn ich das richtig sehe, muss ich die Koordinaten für den Kreisbogen/die weiteren Tortenstücke aus den Anteilen (prozentual zur Basis 360° bzw. 2π) berechnen.
Ja, genau! Und da war für mich die Frage,
- wie ich den Bogen berechne (meine Idee Umfang des Kreises berechnen, dort dann den Prozentwert des Anteils dazu und dann den Endpunkt des Bogens draufsetzen.
- ob ich alle Kreissegmente oben zeichne und dann entsprechend der bisherigen Anteile rotiere
Also nach meiner kurzen Feierabend-Spielerei (und -Geometrie) ist es gar nicht so kompliziert:
- Koordinatenursprung in der Mitte des umrandenden
circle
definieren (entsprechendeviewBox
mit negativen x- und y-Koordinaten nötig). - Tortenstück als Pfad vom Ursprung ausgehend nach oben und dann den Kreisbogen entsprechend des Winkels entlang; Pfad schließen.
- Tortenstücke entsprechend des summierten Winkels der Vorgänger rotieren.
Das habe ich in https://www.robertbienert.de/self/torte.html einmal ausprobiert es macht fürs Erste einen guten Eindruck. Mit einer Beispieleingabe wie
#39f .5
#93f .3
#f39 .25
#f93 1
#3f9 .4
#9f3 .5
kann man auch gleich einmal hübsche Farbpaletten ausprobieren.
Neben dem Hinweis von @Rolf B mit dem large-arc sweep für Winkel > 180° habe ich auch eine Sonderbehandlung für Winkel = 180° enthalten, weil das ein einfacher Halbkreis ist, für den ich kein Dreieck der rechten Ecke berechnen könnte.
Ich denke, dass wir darauf aufbauen können 😀
Knifflig wird es noch beim Beschriften der Tortenstücke, weil die Beschriftung ja nicht mit-rotiert werden sollte.
Viele Grüße
Robert