[Wiskunde] - Taartgrafiek en label binnen 'taartstukje'

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:59
Aloha,

Momenteel ben ik bezig met een systeem waarmee ik een taartgrafiek moet maken. Dit is me ook gelukt, hoewel ik niet geweldig ben met Wiskunde, het is een beetje een vreemde taartgrafiek met het circeltje in het midden, maar die hoort er, en ook moet elke 'taarstuk' even groot zijn.

Voorbeeld: http://cl.ly/3lSt

Nu is het me gelukt om het tot zo ver te maken, maar nu vraag ik me af, ik wil graag ook labels binnen de 'taarstukken' kunnen plaatsen (niet alleen op het 'center' rondje).

Hoe kan ik nu bepalen op 'welke coordinaten' het tekstvakje moet verschijnen?

De waarde's die ik weet:

- Radius van de cirkel.
- Radiaal van het begin van de taartpunt en het einde van een taartpunt.

Maar nu weet ik niet hoe ik door middel van die twee waardes een coördinaat binnen de betreffende taartpunt.
Iemand die me een zetje in de juiste richting kan geven?

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

Zoek eens op goniometrische functies (sin, cos). Het is niet heel moeilijk :)

-niks-


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:59
De Sinus / Cosinus ken ik enkel (nog) van het berekenen van een hoeken e.d met een driehoek. (Zoals: http://www.wiskunde.eu/?pg=310003 ) maar hoe ik dat in een cirkel kan toepassen, ik zou het echt niet weten. Wiskunde was nooit mijn sterkste vak eigenlijk.

Kan ik een 'schopje' in de juiste richting krijgen? Dan zoek ik ondertussen verder.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

Verwijderd


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:59
Heb de site die bij dat plaatje hoort bekeken, maar duidelijk wordt het nog niet.

* Voelt zich dom * :P

Kan iemand van 'schopje' een 'trap' maken? ;)

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

Verwijderd

Deze wilde ik je al eerder laten zien, maar nu vond ik hem eindelijk. Tesamen met deze, welke ook de cosinus-functie (gedraaid!) in positie uitbeeld.

(Daarvan is ook een flash-applicatie aanwezig, op de site in mijn vorige post)

Hopelijk begrijp je nu hoe je een punt op een cirkel (met een iedere willekeurige radius) kan kiezen. Anders hoor ik graag een specifieke wedervraag terug :P

spoiler:
ik zou deze uitleg aanraden, waar een jongeman met metingen van de cirkel-definitie, de sinus-grafiek tekent. Het gaat jou eigenlijk om die cirkel-definitie.


[edit]
@Smurfje

Volgens mij vroeg Zpaz naar het 'middenpunt' van een taart-punt, niet de oppervlakte.* Maar ach, zelfs met een polygoon zou tekst invoegen een moeilijke zaak (kunnen) zijn :P

spoiler:
Ik zou dus het gewogen gemiddelde van de 2 radialen, en van de ene radius (nu we toch spoilen).*

*Als je niet de gehele cirkel wilt gebruiken, dan heb je zeker een tweede radius c.q. binnen-cirkel nodig ja.
Dit feitje had ik gemist, toen ik de TS eerder las.

[ Voor 34% gewijzigd door Verwijderd op 25-12-2010 00:17 ]


Acties:
  • 0 Henk 'm!

  • Brilsmurfffje
  • Registratie: December 2007
  • Niet online

Brilsmurfffje

Parttime Prutser

(jarig!)
je moet het oppervlakte van de buitenste cirkel nemen, en dan van de kleinere, deze trek je van elkaar af en het antwoord is het oppervlakte van het buitenste rondje.
Je moet dus denkbeeldig de lijnen doortrekken naar het hart van de cirkel.

Dan kan je met het oppervlakte en de hoek van de taartpunt het oppervlakte bepalen

[ Voor 15% gewijzigd door Brilsmurfffje op 25-12-2010 00:02 ]


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:59
Thanks!

Ik heb nu de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        //Calculate start and end angles        
        //Omtrek
        var fullRound = Math.PI*2;
        
        var percent = (value / self.total) * 100;
        //Go from percentages to radian
        var endRadian = fullRound / 100 * percent;
        
        //Go to center of pie
        var centerRadian = self.currentAngle + (endRadian / 2);

        var xCos = Math.cos(-centerRadian);
        var ySin = Math.sin(-centerRadian);
        
        var x = self.radius - (self.radius * xCos);
        var y = self.radius - (self.radius * ySin);     
        
        self.drawTextWithMaxWidth(label, x,y, 100);
        
        self.currentAngle += endRadian;


En het werkt! Nu zit er niet helemaal in mijn hoofd waarom, maar het werkt :) (Ze staan nu op de rand in het midden, maar krijg ze nog wel in het midden/midden :)

http://cl.ly/3kwz

edit: Helemaal gefixt: http://cl.ly/3l7h

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • MasterTweaker
  • Registratie: Maart 2010
  • Laatst online: 12-09 18:01
In welke programmeer taal doe je dit als ik vragen mag? :)

Acties:
  • 0 Henk 'm!

  • _Erikje_
  • Registratie: Januari 2005
  • Laatst online: 08-10 11:25

_Erikje_

Tweaker in Spanje

MasterTweaker schreef op maandag 27 december 2010 @ 14:42:
In welke programmeer taal doe je dit als ik vragen mag? :)
hoogstwaarschijnlijk actionscript

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:59
Script was wel goed, Javascript. :)

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:10
ActionScript =~ ECMAScript =~ JavaScript

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 28-09 18:33
Is de code van zaterdag 25 december 2010 20:21 nu de 'helemaal gefixt'-code of de 'rand'-code? Indien het laatste, kun je de 'helemaal gefixt'-code ook posten?

Edit: Thanx

[ Voor 4% gewijzigd door Bolukan op 28-12-2010 13:26 ]


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:59
Soultaker schreef op maandag 27 december 2010 @ 23:25:
ActionScript =~ ECMAScript =~ JavaScript
True, maar dat maakt niet ActionScript == Javascript.
Bolukan schreef op dinsdag 28 december 2010 @ 11:03:
Is de code van zaterdag 25 december 2010 20:21 nu de 'helemaal gefixt'-code of de 'rand'-code? Indien het laatste, kun je de 'helemaal gefixt'-code ook posten?
Tuurlijk:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
this.renderLabel = function(label, value) {
        ctx = self.context;

        //Calculate start and end angles        
        //Omtrek
        var fullRound = Math.PI*2;
        
        var percent = (value / self.total) * 100;
        //Go from percentages to radian
        var endRadian = fullRound / 100 * percent;
        
        //Go to center of pie
        var centerRadian = self.currentAngle + (endRadian / 2);

        var xCos = Math.cos(-centerRadian);
        var ySin = Math.sin(-centerRadian);
        
        var x = self.radius - ((self.radius*0.72) * xCos);
        var y = self.radius - ((self.radius*0.72) * ySin);      
        
        self.drawTextWithMaxWidth(label, x,y, 100);
        
        self.currentAngle += endRadian;
    }

Tweakers Time Machine Browser Extension | Chrome : Firefox

Pagina: 1