PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dyn. Kreisdiagramm füllen


TenShoe
17.12.2001, 01:43
Hi!

Bin dabei mir ein dynamisches Kreisdiagramm zu coden.
Es kann bereits Prozentwerte auslesen und diese in dem Diagramm darstellen.
Jetzt möchte ich aber die einzelnen Teilstücke mit jeweils einer anderen Farbe füllen.
Das ist glaube ich eher ein mathematisches Problem.
-Wie kann ich beispielsweise das im Uhrzeigersinn 1. Teilstück blau einfärben?

Es sind 30% also 108°
Der Kreis hat einen Radius von 100px.

-Bräuchte also ne Funktion mit der ich die Fläche errechnen kann.

MfG,


derGugi
17.12.2001, 09:24
hallo

Also wenn dir nur die mathematische Formel fehlt, kann ich dir helfen. Wenn ich das noch richtig in Erinnerung hab, lauted die so:
r^2*PI*0.3

hoffe, die stimmt:-)

wenn es so nicht geht, kannst du es vielleicht mit dublicateMovieClip machen. Also alles verdoppeln, bis die 30% erreicht sind...

TenShoe
17.12.2001, 12:57
Hi Gugi!

Das mit dem duplicateMovie hab ich mir auch schon überlegt.
Mit deiner Formel kann ich nichts anfangen, weil ich zu meinem Zweck ja nur den Kreisbogen brauche um die Fläche zu bestimmen (hab n bisschen in meinen alten Schulsachen rumgeblättert ;) )
Probiere jetzt aber erst eine elegantere Lösung. -Wenn sie funktioniert werde ich sie posten.

MfG,

TenShoe
17.12.2001, 16:14
Habe mir jetzt nen anderen Weg überlegt.
Ich mache mir 2 identisch grosse Halbkreise.
Der eine (aussen1) maskiert den anderen(innen1) wobei das Script die beiden Halbkreise immer so dreht dass der "innen1" an dem gewünschten Kreisausschnitt des Diagramms sichtbar ist:



start = 0;
end = secA; //"secA" gibt eine beliebige Prozentzahl von 0-100 an, die den Winkel d. 1. Teilstückes beschreibt.

_root.aussen1._rotation = 180+start*3,6;
_root.innen1._rotation = end*3.6+180;

Wie man sieht funktioniert diese Methode nur bis 50% oder 180°; weiss jemand wie ich dieses Problem umgehen kann?

Codeq
17.12.2001, 16:23
*G*
benutz die Kreisfunktion ?!

r^2 == x^2 + y^2

und der tan is der bezug von x zu y in rad ...

ich weiss ned ob flash die möglichkeit hat polygone zu füllen, notfalls musste dann halt eine linie malen (r) die um 0.1° versetzt neu gezeichnet wird..

TenShoe
17.12.2001, 16:48
Obenstehendes ist ja bereits eine sehr konfortable Lösung, die ich ganz gerne weiter benutzen würde.
Dabei tritt eben nur dieses kleine problem auf, was aber in den Griff zu bekommen sein dürfte.