[Résolu] Un coup de main en géométrie, svp!

berfisberfis Membre
mai 2013 modifié dans Objective-C, Swift, C, C++ #1

Bonjour,


 


Oui, je sais, j'aurais dû écouter à  l'école, et si je l'ai fait j'aurais dû comprendre, et si j'ai compris j'aurais dû ne pas oublier...


 


Voilà , j'aimerais disposer une série de NSViews en cercle dans une superview, un peu à  la manière des anciens cadrans de téléphone:


 


je crée mes NSViews dans une boucle à  N itérations;


les dimensions de toutes les NSViews (superview et subviews) sont fixes;


 


Il y a quelques tracasseries liées au système de coordonnées Quartz, mais avec votre aide je devrais m'en sortir. Je suppose qu'il faut préalablement diviser les 360° par N pour avoir un intervalle régulier, mais cela s'arrête là  pour moi. Quelles doivent être les coordonnées des origines de mes N subviews?


 


D'avance un grand merci!


Mots clés:

Réponses

  • LarmeLarme Membre
    mai 2013 modifié #2

    ça m'rappelle certains trucs de mon boulot (j'ai fait une jauge circulaire, à  partir d'un angle, et d'un angle total)...


    J'regarderais d'ici la fin de la semaine si j'ai l'temps de m'pencher dessus et que personne n'y a répondu.


    Sinon, y'a pas Carrousel qui permet de faire ça ?


  • mpergandmpergand Membre
    mai 2013 modifié #3

    Soit:


    centerPoint  : le point central


    nbPoints  : le nombre de points (vues dans ton cas) à  répartir dans le cercle


    radius  : distance par rapport au centre


    angleStep  : angle entre chaque point



    float angleStep=(pi*2)/nbPoints // angle en radiants

    for(i=0; i<nbPoints; i++)
    {
    float angle=angleStep*i;
    NSPoint pt;

    pt.x= centerPoint.x+radius*cosf(angle);
    pt.y= centerPoint.y+radius*sinf(angle);

    ...
    }

  • Oh la! c'est du niveau du début du secondaire!


    Principe si:  Rayon=R,  N positions et x de 0 à  N.


     


    La position du xième point est  Y = R sin((360*x)/N)  et X = R cos((360*x)/N)


     


      ???   Grillé par mpergand !!


     


    A noter qu'il existe des algorithmes spéciaux pour dessiner des courbes sur des points (voir les "numerical recipes" par exemple)


  • berfisberfis Membre


    Oh la! c'est du niveau du début du secondaire!




    Ouais, bon, ça va...  <_<


    Déjà  à  l'époque, l'accord des participes me branchait davantage... Si j'avais su que ces histoires de sinus et de cosinus me rattraperaient...


     


    Bon reste à  fourrer tout ça sur une NSView non flippée. Je m'y mets et je vous tiens au courant.


     


    D'ores et déjà  merci pour ces réponses, amis matheux.

  • berfisberfis Membre

    YESSSS! Merci!


Connectez-vous ou Inscrivez-vous pour répondre.