IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Rotation de node sous TiKz

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 84
    Points : 57
    Points
    57
    Par défaut Rotation de node sous TiKz
    Bonjour à tous

    J'ai récupéré un chouette code TiKz sur le net que j'ai un peu trafiqué à ma sauce pour créer un rapporteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    \documentclass{standalone}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
     
    \def\radius{10cm}
     
    \begin{tikzpicture}
     
      \draw (0,0) circle (\radius);
      \draw[fill=black] (0,0) circle (.02mm);
      \node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
     
      % main lines
      \foreach \x in {0,...,359} \draw (\x:\radius-0.5cm) -- (\x:\radius);
     
      % lines at every 5 degrees
      \foreach \x in {5,15,...,355}  \draw (\x:\radius-0.7cm) -- (\x:\radius);
     
     
        % labels and longer lines at every 10 degrees
      \foreach \x in {0,10,...,350}\draw (\x:\radius-1cm) -- (\x:\radius);
      \foreach \x in {0,10,...,350}\node[scale=1.5,rotate=0] at (\x:\radius+0.5cm) {\x};
     
     
    \end{tikzpicture}
    \end{document}
    Mon problème est que je ne comprends pas pourquoi comparé à ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    \documentclass{standalone}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
     
    \def\radius{10cm}
     
    \begin{tikzpicture}
     
      \draw (0,0) circle (\radius);
      \draw[fill=black] (0,0) circle (.02mm);
      \node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
     
      % main lines
      \foreach \x in {0,...,359} \draw (\x:\radius-0.5cm) -- (\x:\radius);
     
      % lines at every 5 degrees
      \foreach \x in {5,15,...,355}  \draw (\x:\radius-0.7cm) -- (\x:\radius);
     
     
        % labels and longer lines at every 10 degrees
      \foreach \x in {0,10,...,350}\draw (\x:\radius-1cm) -- (\x:\radius);
      \foreach \x in {0,10,...,350}\node[scale=1.5,rotate=-90] at (\x:\radius+0.5cm) {\x};
     
     
    \end{tikzpicture}
    \end{document}
    alors que tout ce que je souhaite c'est faire tourner chaque label sur lui-même, cela provoque une entière rotation de tous mes labels par rapport au centre du disque.

    Pourriez-vous m'aider?
    Merci d'avance

    frednight

  2. #2
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    bonsoir,
    Ce n'est pas clair du tout comme demande, la rotation de 90° devrait s'appliquer à qui ? Aux labels? Chaque label doit être écrit verticalement?
    Ma boule de cristal étant sortie ce soir je vais tenter une réponse
    Les labels (les angles en °) seront imprimés en fonction de leur position sur le cercle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    \documentclass{standalone}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
     
    \def\radius{10cm}
     
    \begin{tikzpicture}
     
      \draw (0,0) circle (\radius);
      \draw[fill=black] (0,0) circle (.02mm);
      \node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
     
      % main lines
      \foreach \x in {0,...,359} \draw (\x:\radius-0.5cm) -- (\x:\radius);
     
      % lines at every 5 degrees
      \foreach \x in {5,15,...,355}  \draw (\x:\radius-0.7cm) -- (\x:\radius);
     
     
        % labels and longer lines at every 10 degrees
      \foreach \x in {0,10,...,350}\draw (\x:\radius-1cm) -- (\x:\radius);
      \foreach \x in {0,10,...,350}\node[scale=1.5,rotate=-90] at (\x:\radius+0.5cm) {\rotatebox{\x}{\x}};
     
     
    \end{tikzpicture}
    \end{document}

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 84
    Points : 57
    Points
    57
    Par défaut
    effectivement je souhaite que les labels en degrés soient tournés en fonction de leur position sur le cercle
    Mon problème réside en ce que le cas suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    \documentclass{standalone}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
     
    \def\radius{10cm}
     
    \begin{tikzpicture}
     
      \draw (0,0) circle (\radius);
      \draw[fill=black] (0,0) circle (.02mm);
      \node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
     
      % main lines
      \foreach \x in {0,...,359} \draw (\x:\radius-0.5cm) -- (\x:\radius);
     
      % lines at every 5 degrees
      \foreach \x in {5,15,...,355}  \draw (\x:\radius-0.7cm) -- (\x:\radius);
     
     
        % labels and longer lines at every 10 degrees
      \foreach \x in {0,10,...,350}\draw (\x:\radius-1cm) -- (\x:\radius);
      \foreach \x in {0,10,...,350}\node[scale=1.5, rotate=\x] at (\x:\radius+0.5cm) {\x};
      \foreach \x in {0,10,...,350}\node[scale=1.5, rotate=\x-90] at (\x:\radius+1.5cm) {\x};
     
    \end{tikzpicture}
    \end{document}
    est différent de celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    \documentclass{standalone}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
     
    \def\radius{10cm}
     
    \begin{tikzpicture}
     
      \draw (0,0) circle (\radius);
      \draw[fill=black] (0,0) circle (.02mm);
      \node[draw, circle, inner sep=.2mm] (a) at (0,0) {};
     
      % main lines
      \foreach \x in {0,...,359} \draw (\x:\radius-0.5cm) -- (\x:\radius);
     
      % lines at every 5 degrees
      \foreach \x in {5,15,...,355}  \draw (\x:\radius-0.7cm) -- (\x:\radius);
     
     
        % labels and longer lines at every 10 degrees
      \foreach \x in {0,10,...,350}\draw (\x:\radius-1cm) -- (\x:\radius);
      \foreach \x in {0,10,...,350}\node[scale=1.5, rotate=\x+90] at (\x:\radius+0.5cm) {\x};
     
    \end{tikzpicture}
    \end{document}
    non seulement parce que les labels sont tournés différemment (logique puisque c'est ce que la différence de code doit provoquer) mais surtout la position de mon zéro par exemple est complètement changée (passe de gauche à droite)

  4. #4
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    C'est toujours pas clair. Où veux-tu le zéro? et quelle orientation pour les nombres ? horizontale ? verticale ? incliné selon le degré ?

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 84
    Points : 57
    Points
    57
    Par défaut
    En fait, je voudrais les nombres incliné selon le degré dont ils sont censés être les labels de sorte qu'ils soient tangents au cercle.

    Et j'aimerais surtout comprendre pourquoi l'argument rotate en option ne se contente pas de faire tourner mes nodes sur elles-mêmes mais les fait tourner aussi autour de mon cercle

  6. #6
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Pour le résultat désiré il suffit de faire un \rotatebox sur le code que j'ai proposé plus haut. Pour la deuxième question j'ai fait quelques recherches : page 106 de TikZ pour l'impatient page 106 :
    Remarque : Attention, l’effet des options rotate ou scale quand elles sont
    • appliquées à un des environnements scope ou tikzpicture n’est pas le même que si elles sont appliquées à l’opération node : rotate ou scale pour les environnements scope ou tikzpicture : ce sont les lignes du dessin qui constitue la figure qui subissent les transformations. La figure tourne, sa taille est modifiée, mais les annotations textuelles effectuées à l’aide de noeuds gardent leurs tailles et leurs orientations.
    • rotate ou scale pour l’opération node :
      ce sont les textes contenus dans le noeud qui subissent les transformations.
      Une fois ces transformations effectuées, il n’y a plus de changement des
      textes, ni en taille, ni en orientation lors d’une modifications des options
      de scope ou tikzpicture. Il y a cependant déplacement des textes qui restent liés à leurs points d’ancrage qui ont bougé.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 84
    Points : 57
    Points
    57
    Par défaut
    en fin de compte je pense avoir trouvé : du fait que la classe de document que j'ai utilisée était standalone, il semblerait que du coup la visionneuse PDF de TeXmaker ait pris la liberté de tourner l'image de redu sans que ce ne soit vraiment le cas pour les nodes en elles-mêmes

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT 1.0] Node, sous-node et tableau + Liste
    Par jimmy1708 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/07/2014, 10h55
  2. Gestion des Directory sous RAC One Node
    Par rouardg dans le forum Oracle
    Réponses: 3
    Dernier message: 26/07/2011, 14h54
  3. TIKZ & PGF, comment faire des rotations successives
    Par saih_tam dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 20/05/2009, 15h38
  4. Control et Rotation d'un sous marin.
    Par Iksaif dans le forum OpenGL
    Réponses: 5
    Dernier message: 15/04/2006, 14h02
  5. Texture sur un cube en rotation sous Delphi !!!
    Par Cosmo dans le forum DirectX
    Réponses: 1
    Dernier message: 06/01/2004, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo