Results 1 to 11 of 11

Thread: Waarom begint een Tpie negatief ?

  1. #1

    Waarom begint een Tpie negatief ?

    Ik wil een TPie dynamisch creëren en met een animatie op het scherm te laten verschijnen. Dit lukt mij wel maar waarom begint de TPie altijd negatief ? het is zowat 90º.
    De 0 zit op 3 uur.
    Ik verwachtte dat hij zou moeten starten op 0º en in 0.5 sec naar de 15º ( 4 uur). Maar het begint nu op zowat 12 uur al te animeren.

    Code:
    {$R *.fmx}
    uses FMX.Objects;
    
    procedure TForm2.Button1Click(Sender: TObject);
    var    Taart : TPie;
    begin
          Taart := TPie.Create(Self);
          Taart.Parent := Self;
          Taart.Height := 200;
          Taart.Width := 200;
          Taart.Position.X := 100;
          Taart.Position.Y := 50;
          Taart.Fill.Color := TAlphaColors.Red;
          Taart.StartAngle := 0;
          Taart.AnimateFloat('EndAngle', 15, 0.5);
          Taart.EndAngle := 15;
    end;
    Heeft iemand een idee ? Groet Ronaldo
    Last edited by Ronaldinho; 16-Mar-20 at 12:15.

  2. #2
    Daar heb ik me ook weleens over verbaasd, maar blijkbaar is het heel logisch. Als je met sinus en cosinus een cirkel tekent, dan begin je rechts (op "3 uur") en ga je tegen de klok in.

    Wikipedia heeft wat uitleg over de Unit circle, en specifiek deze animatie laat het in één oogopslag zien.

    1+1=b

  3. #3
    Quote Originally Posted by GolezTrol View Post
    Daar heb ik me ook weleens over verbaasd, maar blijkbaar is het heel logisch. Als je met sinus en cosinus een cirkel tekent, dan begin je rechts (op "3 uur") en ga je tegen de klok in.

    Wikipedia heeft wat uitleg over de Unit circle, en specifiek deze animatie laat het in één oogopslag zien.
    [/IMG]
    Ok dat snap ik maar waarom de animate dan op 12 uur begint en niet op 3 uur ? ik wilde de taartpunten dynamisch aanmaken met waardes die ik uit een database haal. Dit lukt wel maar het ziet er visueel niet uit als je de animatie opstart. 15º stukje is in eerste instantie een lap van 90º is wat dan verminderd tot de 15º.

  4. #4
    Silly member NGLN's Avatar
    Join Date
    Aug 2004
    Location
    Werkendam
    Posts
    5,076
    Dat komt omdat de EndAngle standaard -90° is. Zie TPie.Create.

    Je animeert de property EndValue, en volgens de documentatie zet AnimateFloat de StartFromCurrent property op True, oftewel hij begint met een EndValue van -90.

    Op deze manier verkrijg je het gewenste effect:

    Delphi Code:
    1. procedure TForm1.Button2Click(Sender: TObject);
    2. var
    3.   Taart: TPie;
    4. begin
    5.   Taart := TPie.Create(Self);
    6.   Taart.Parent := Self;
    7.   Taart.SetBounds(100, 50, 200, 200);
    8.   Taart.Fill.Color := TAlphaColors.Red;
    9.   Taart.EndAngle := 0;
    10.   Taart.AnimateFloat('EndAngle', 15, 0.5);
    11. end;
    Overigens, moet je Taart niet vrijgeven? Of heeft FMX een garbage-collector?
    (Sender as TNLDUser).Signature := 'Groeten van Albert';

  5. #5
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,088
    NGLN: Niet als je create(self) doet, dan zet je de owner

  6. #6
    Silly member NGLN's Avatar
    Join Date
    Aug 2004
    Location
    Werkendam
    Posts
    5,076
    (Pfff, ben er echt te lang uit geweest... )

    Nog een kleine verbetering om de compiler-warning te elimineren:

    Delphi Code:
    1. uses
    2.   FMX.Ani;
    3.  
    4. procedure TForm1.Button2Click(Sender: TObject);
    5. var
    6.   Taart: TPie;
    7. begin
    8.   Taart := TPie.Create(Self);
    9.   Taart.Parent := Self;
    10.   Taart.SetBounds(100, 50, 200, 200);
    11.   Taart.Fill.Color := TAlphaColors.Red;
    12.   Taart.EndAngle := 0;
    13.   TAnimator.AnimateFloat(Taart, 'EndAngle', 15, 0.5);
    14. end;
    (Sender as TNLDUser).Signature := 'Groeten van Albert';

  7. #7
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,088
    Quote Originally Posted by NGLN View Post
    (Pfff, ben er echt te lang uit geweest... )
    Het zijn verschrikkelijke tijden. Ik heb vorige week zelfs PYTHON gedaan. Yuk.

  8. #8
    Thanx voor je hulp NGLN, de animatie ziet er nu een stuk beter uit. en de code kan dus een stukje korter ook met de SetBounds.
    mijn dank is groot

  9. #9
    Quote Originally Posted by marcov View Post
    Het zijn verschrikkelijke tijden. Ik heb vorige week zelfs PYTHON gedaan. Yuk.
    hoop dat dat niet besmettelijk is

  10. #10
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,088
    Quote Originally Posted by Miep View Post
    hoop dat dat niet besmettelijk is
    Als mensen bij de kassa niet helemaal recht in één lijn staan, zoek ik er direct betekenis achter.

  11. #11
    Quote Originally Posted by marcov View Post
    Als mensen bij de kassa niet helemaal recht in één lijn staan, zoek ik er direct betekenis achter.
    twee keer daags COBOL-85

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •