Refaire une certaine figure en latex

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Refaire une certaine figure en latex

Messagepar shifumi02 » Mardi 13 Juin 2017, 20:14

Boujour, j'aurais besoin de faire un graphe comme ceci en latex mais je ne sais pas du tout comment faire ou quel package utiliser. Si quelqu'un sait comment faire merci d'avance

https://www.noelshack.com/2017-24-2-1497380983-quadrillage.png
shifumi02
Utilisateur
 
Messages: 9
Inscription: Lundi 08 Mai 2017, 14:24
Statut actuel: Post-bac

Publicité

Re: Refaire une certaine figure en latex

Messagepar rebouxo » Mardi 13 Juin 2017, 22:44

Au choix pstricks, TiKz ou asymptote sont tes amis.
Personnellement se sera plutôt asymptote. J'ai laissé tombé pstricks, et je ne me fais définitivement pas à TiKz.

Une version avec asymptote :

78ffa2a15f370e9953e882d6283e4ee9.png

Code: Tout sélectionner
settings.outformat="pdf" ;
import graph ;
import math ;
import geometry ;
usepackage("calrsfs") ;
import interpolate ;
import animate ;


void grille(picture pic)
{
for(int i = 0 ; i <= 6 ; ++i)
{
for(int j = 0 ; j <= 6 ;++j)
{
draw(pic,(i,0)--(i,6),grey+1pt) ;
draw(pic,(0,j)--(6,j),grey+1pt) ;
}
}
for(int i = 0 ; i <= 6 ; ++i)
{
for(int j = 0 ; j <= 6 ;++j)
{
dot(pic,(i,j),red+4pt) ;
}
}
}



picture vide ;
picture fig ;
picture complet ;
pen noir = black+1.5pt ;

unitsize(vide,0.5cm,0.5cm) ;

grille(vide) ;

unitsize(fig,0.5cm,0.5cm) ;

grille(fig) ;

pair[] bleu ={(4,1),(5,1),(2,3),(4,5),(4,6)} ;

real ep = - 0.15 ;
real x = bleu[2].x ;
real y = bleu[2].y ;
real xmin = x - 1 - ep ;
real xmax = x + 1 + ep ;
real ymin = y - 1 - ep ;
real ymax = y + 1 + ep ;
path[] croix = (xmin,y)--(xmax,y)^^(x,ymin)--(x,ymax) ;
draw(fig,croix,noir) ;

real x = 0 ;
real y = 1 ;
real xmin = x - ep ;
real xmax = x + 1 ;
real ymin = y - 1 - ep ;
real ymax = y + 1 + ep ;

path[] tri = (xmin,y)--(xmax,y)^^(xmax,ymin)--(xmax,ymax) ;
draw(fig,shift(3,0)*tri,noir) ;
draw(fig,rotate(180,(5,1))*shift(4,0)*tri,noir) ;
draw(fig,shift(4,3)*rotate(90,(0,1))*tri,noir) ;

real x = 1 ;
real y = 0 ;
real xmin = x -1 - ep ;
real xmax = x + 1 + ep ;

path simple =(xmin,y)--(xmax,0) ;
draw(fig,shift(3,6)*simple,noir) ;
for(pair p:bleu)
{
dot(fig,p,blue+4pt) ;
}

unitsize(complet,0.5cm,0.5cm) ;

pair[] bleu={
(1,0),(3,0),
(0,1),(2,1),(5,1),(6,1),
(1,2),(2,2),(4,2),
(0,3),(5,3),
(0,4),(1,4),(2,4),(4,4),
(0,5),(4,5),(5,5),
(2,6),(3,6),(4,6),(5,6)} ;

real x1 = 0 - ep ;
real y1 = 0 ;
real x2 = 1 + ep ;
real y2 = 0 ;

path tH =(x1,y1)--(x2,y2) ;
path tV = rotate(90)*tH ;

grille(complet) ;
for(pair p:bleu)
{
dot(complet,p,blue+4pt) ;
}
// les traits horizontaux
pair[] dH = {(0,0),(1,0),(2,0),(3,0),
(0,1),(1,1),(2,1),(4,1),
(0,2),(2,2),(3,2),(4,2),
(0,3),(4,3),(5,3),
(2,4),(3,4),(4,4),
(0,5),(3,5),(5,5),
(1,6),(5,6)} ;

pair[] dV = {(0,0),(0,1),(0,2),(0,5),
(1,0),(1,1),(1,2),(1,3),(1,4),
(2,0),(2,2),(2,3),(2,4),(2,5),
(3,0),(3,5),
(4,1),(4,2),(4,3),
(5,0),(5,1),(5,2),(5,3),(5,4),
(6,0),(6,1)};
for(pair v:dH)
{
draw(complet,shift(v)*tH,noir) ;
}

for(pair v:dV)
{
draw(complet,shift(v)*tV,noir) ;
}

add(vide.fit()) ;
add(fig.fit(),(95,42.5),E) ;
add(complet.fit(),(190,42.5),E) ;

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6729
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Refaire une certaine figure en latex

Messagepar gigiair » Mercredi 14 Juin 2017, 12:36

quadrillage.pdf
Version finale
(4.42 Kio) Téléchargé 6 fois
Asymptote, c'est la version maximale. Si l'OP n'a que ce besoin en graphisme, ça va quand même être très coûteux en apprentissage !
Bon, s'il y a un volontaire pour faire le travail à chaque requête...
Il y a aussi de multiples assistants avec cliquodrômes, on n'obtient pas toujours ce qu'on veut avec précision.

Je propose une solution minimale, purement LaTeX avec l'environnement picture. Aucune extension, aucun logiciel externe.
J'ai juste utilisé pgffor pour un peu de confort dans l'écriture du code.

\foreach de pgffor est bien pratique pour effectuer des tâches répétitives, mais ce n'est évidemment pas indispensable.

Code: Tout sélectionner
\documentclass[12pt,a4paper,french]{article}%
\usepackage[T1]{fontenc}%
\usepackage[utf8]{inputenc}%
\usepackage{xcolor}%
\usepackage{pgffor}%
\usepackage{babel}%

\begin{document}%
% ,----
% |  Paramétrage
% `----

\setlength{\unitlength}{6mm}%

\def\couleurArcMarque{\color{purple}}%%% Couleur d'un arc marqué
\def\EpaisseurArcMarque{\linethickness{1.6pt}}%%% Épaisseur d'un arc marqué
\def\Ddl{.2}%%% Diamètre disque avec liseré

% ,----
% | Utilitaires
% `----
\newcommand*{\Dal}[1]{{\color{#1}%%% Disque avec liseré
    \circle*{\Ddl}}%
  \put(-\Ddl,0){\circle{\Ddl}}}%

\newcommand*{\GrilleNue}
{\multiput(0,0)(1,0){7}{\line(0,1){6}}%
  \multiput(0,0)(0,1){7}{\line(1,0){6}}}%
 
\noindent{}%
 \begin{picture}(20,6) %
 % ============================================================================
   \put(0,0){ %%% grille de gauche
     %%% Fond
     \GrilleNue{}

    %%% Points rouges sur tous les noeuds
     \multiput(0,0)(0,1){7}{%
       \multiput(0,0)(1,0){7}{\Dal{red}}}}%
 
 % ============================================================================
 \put(7,0){ %%% grille centrale
   
   %%% Fond
   \GrilleNue{}
   
   %%% Arcs horizontaux marqués
   \foreach \x/\y in
   { 3/1, 5/1,
     1/3, 2/3,
     3/5, 4/5,
     3/6, 4/6 }
   {\put(\x,\y)
     {\couleurArcMarque\EpaisseurArcMarque\line(1,0){1}}}%

   %%% Arcs verticaux marqués
   \foreach \x/\y in
   { 4/0, 5/0,
     4/1, 5/1,
     2/2, 2/3,
     4/4,
     4/5 } 
   {\put(\x,\y){\couleurArcMarque\EpaisseurArcMarque\line(0,1){1}}}%

%  %%% Points marqués rouges en surcharge à chaque noeud
   \multiput(0,0)(0,1){7}{\multiput(0,0)(1,0){7}{\Dal{red}}}%

   %%% Points marqués bleus en surcharge des rouges
   \foreach \x/\y in
   { 4/0,
     2/3,
     4/5}    %
   {\put(\x,\y){\Dal{blue}}}
}
 %
 
% ============================================================================
 \put(14,0){ % grille de droite
   %%% Fond
   \GrilleNue{}%
   
   %%% Arcs horizontaux marqués
   \foreach \x/\y in
   { 0/0, 1/0, 2/0, 3/0, %
     0/1, 1/1, 2/1, 4/1, %
     0/2, 2/2, 3/2, 4/2, %
     0/3, 4/3, 5/3,  %
     2/4, 3/4, 4/4, %
     0/5, 3/5, 5/5, %
     1/6, 5/6 %
      }%
   {\put(\x,\y){\couleurArcMarque\EpaisseurArcMarque\line(1,0){1}}}%

   %%% Arcs verticaux marqués
   \foreach \x/\y in
   { 0/0, 1/0, 2/0, 3/0, 5/0, 6/0,%
     0/1, 1/1, 4/1, 5/1, 6/1,%
     0/2, 1/2, 2/2, 4/2, 5/2,%
     1/3, 2/3, 4/3, 5/3,%
     1/4, 2/4, 5/4,%
     0/5, 2/5, 3/5 } %
      {\put(\x,\y){\couleurArcMarque\EpaisseurArcMarque\line(0,1){1}}}%

      %%% Points rouges à chaque noeud marqué en surcharge
    \multiput(0,0)(0,1){7}{\multiput(0,0)(1,0){7}{\Dal{red}}}%

    %%% Points bleus marqués en surcharge des rouges
    \foreach \x/\y in
    { 2/0, 3/0, 4/0, 5/0, 1/0, 3/0, %
      0/1, 2/1, 5/5, 6/1,%
      1/2, 2/2, 4/2,%
      0/3, 5/3,%
      0/4, 1/4, 2/4, 4/4,%
      0/5, 4/5, 5/5 }%   
      {\put(\x,\y){\Dal{blue}}}
 }%
 \end{picture}


\end{document}

La version LaTeX pur n'est peut-être pas aussi belle que la version Asymptote. Ça dépend de ce qu'on veut en faire. Si c'est pour un tableau à accrocher au mur du salon, il faut peut-être reconsidérer le problème.
Attention, cette version est la deuxième. La première de premier jet était plutôt maladroite. Je ne suis pas un habitué de l'environnement picture
Dernière édition par gigiair le Jeudi 15 Juin 2017, 20:29, édité 2 fois.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2268
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Refaire une certaine figure en latex

Messagepar shifumi02 » Mercredi 14 Juin 2017, 23:06

Super, merci beaucoup pour vos réponses, c'est exactement ce que je voulais :D .
Je pense que je vais utiliser l'environement picture pour le moment, ça fera parfaitement l'affaire et j'essaierais d'apprendre assymptote plus tard
shifumi02
Utilisateur
 
Messages: 9
Inscription: Lundi 08 Mai 2017, 14:24
Statut actuel: Post-bac

Re: Refaire une certaine figure en latex

Messagepar gigiair » Jeudi 15 Juin 2017, 08:35

L'environnement picture est clairement très adapté pour ce problème. On peut apprendre à l'utiliser en très peu de temps, j'ai d'ailleurs moi-même appris à utiliser certaines commandes à l'occasion de cette figure.
J'ai corrigé une erreur de coordonnées dans le message précédent. Ça passait au compilateur, mais un point marqué était mal placé.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2268
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Refaire une certaine figure en latex

Messagepar shifumi02 » Jeudi 15 Juin 2017, 22:17

Et vous auriez une idée de comment enlever certains liens entre les points ou enlever des points ? J'ai essayé mais je n'ai pas bien compris comment ça marchait
shifumi02
Utilisateur
 
Messages: 9
Inscription: Lundi 08 Mai 2017, 14:24
Statut actuel: Post-bac

Re: Refaire une certaine figure en latex

Messagepar gigiair » Vendredi 16 Juin 2017, 11:02

Il n'y a pas de difficulté technique, le seul souci est d'éviter un code trop volumineux.
Je propose de surcharger en blanc les parties que l'on veut voire disparaître.

C'est pas parfait, il y a des quelques résidus de cercles. J'ai ajouté un \thicklines aux surcharges, ce n'est pas censé agir sur les cercles, pourtant j'ai l'impression que ça améliore.
J'imagine que les points et les arcs à éliminer n'ont pas été précédemment marqués, ça ne serait pas très logique de les faire disparaître.
Il faut régler « à la main » la longueur des arcs blancs en surcharge. On peut la faire calculer automatiquement, mais j'ai la flemme.
Voici le code avec un exemple dans le tableau du milieu.

Code: Tout sélectionner
\documentclass[12pt,draft,a4paper,french]{article}%
\usepackage[T1]{fontenc}%
\usepackage[utf8]{inputenc}%
\usepackage{xcolor}%
\usepackage{pgffor}%
\usepackage{babel}%

\begin{document}%

% ,----
% |  Paramétrage
% `----

\setlength{\unitlength}{7.5mm}%

\def\couleurArcMarque{\color{purple}}%%% Couleur d'un arc marqué
\def\EpaisseurArcMarque{\linethickness{1.6pt}}%%% Épaisseur d'un arc marqué

\def\Ddl{.2}%%% Diamètre disque avec liseré
\def\ArcDiminue{.9}
% ,----
% | Utilitaires
% `----
\newcommand*{\Dal}[1]{{\color{#1}%%% Disque avec liseré
    \circle*{\Ddl}}%
  \put(-\Ddl,0){\circle{\Ddl}}}%

\newcommand*{\GrilleNue}
{\multiput(0,0)(1,0){7}{\line(0,1){6}}%
  \multiput(0,0)(0,1){7}{\line(1,0){6}}}%

\newcommand*{\CachePoint}[2]{
  \put(#1,#2){\thicklines\color{white}\circle{\Ddl}}%
  \put(#1,#2){\thicklines\color{white}\circle*{\Ddl}}%
  \put(#1,#2){\thicklines\color{white}\line( 1, 0){\ArcDiminue}}%
  \put(#1,#2){\thicklines\color{white}\line(-1, 0){\ArcDiminue}}%
  \put(#1,#2){\thicklines\color{white}\line( 0, 1){\ArcDiminue}}%
  \put(#1,#2){\thicklines\color{white}\line( 0,-1){\ArcDiminue}}
}

\noindent{}%
 \begin{picture}(20,6) %
 % ============================================================================
   \put(0,0){ %%% grille de gauche
     %%% Fond
     \GrilleNue{}

    %%% Points rouges sur tous les noeuds
     \multiput(0,0)(0,1){7}{%
       \multiput(0,0)(1,0){7}{\Dal{red}}}}%
 
 % ============================================================================
 \put(7,0){ %%% grille centrale
   
   %%% Fond
   \GrilleNue{}
   
   %%% Arcs horizontaux marqués en surcharge
   \foreach \x/\y in
   { 3/1, 5/1,
     1/3, 2/3,
     3/5, 4/5,
     3/6, 4/6 } % Arcs horizontaux marqués%
   {\put(\x,\y)
     {\couleurArcMarque\EpaisseurArcMarque\line(1,0){1}}}%

   %%% Arcs verticaux marqués en surchage
   \foreach \x/\y in
   { 4/0, 5/0,
     4/1, 5/1,
     2/2, 2/3,
     4/4,
     4/5 }  % Arcs Verticaux marqués%
   {\put(\x,\y){\couleurArcMarque\EpaisseurArcMarque\line(0,1){1}}}%

   %%% Points marqués rouges en surcharge à chaque noeud
   \multiput(0,0)(0,1){7}{\multiput(0,0)(1,0){7}{\Dal{red}}}%

   %%% Élimination de certains points
   
   \foreach \x/\y in
   { 3/0,%
     0/3,%
     2/5}    %
  {\CachePoint{\x}{\y}%
   }

   %%% Points marqués bleus en surcharge des rouges
   \foreach \x/\y in
   { 4/0,
     2/3,
     4/5}    %
   {\put(\x,\y){\Dal{blue}}}
 } %
 
% ============================================================================
 \put(14,0){ % grille de droite
   %%% Fond
   \GrilleNue{}%
   
   %%% Arcs horizontaux marqués en surcharge
   \foreach \x/\y in
   { 0/0, 1/0, 2/0, 3/0, %
     0/1, 1/1, 2/1, 4/1, %
     0/2, 2/2, 3/2, 4/2, %
     0/3, 4/3, 5/3,  %
     2/4, 3/4, 4/4, %
     0/5, 3/5, 5/5, %
     1/6, 5/6 %
      }%
   {\put(\x,\y){\couleurArcMarque\EpaisseurArcMarque\line(1,0){1}}}%

   %%% Arcs verticaux marqués en surcharge
   \foreach \x/\y in
   { 0/0, 1/0, 2/0, 3/0, 5/0, 6/0,%
     0/1, 1/1, 4/1, 5/1, 6/1,%
     0/2, 1/2, 2/2, 4/2, 5/2,%
     1/3, 2/3, 4/3, 5/3,%
     1/4, 2/4, 5/4,%
     0/5, 2/5, 3/5 } %
      {\put(\x,\y){\couleurArcMarque\EpaisseurArcMarque\line(0,1){1}}}%
 
      %%% Points rouges à chaque noeud marqué en surcharge
    \multiput(0,0)(0,1){7}{\multiput(0,0)(1,0){7}{\Dal{red}}}%
   
    %%% Points bleus marqués en surcharge des rouges
    \foreach \x/\y in
    { 2/0, 3/0, 4/0, 5/0, 1/0, 3/0, %
      0/1, 2/1, 5/5, 6/1,%
      1/2, 2/2, 4/2,%
      0/3, 5/3,%
      0/4, 1/4, 2/4, 4/4,%
      0/5, 4/5, 5/5 }%   
    {\put(\x,\y){\Dal{blue}}}

 }%
 \end{picture}
\end{document}
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2268
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Refaire une certaine figure en latex

Messagepar shifumi02 » Vendredi 16 Juin 2017, 16:54

D'accord, j'ai compris à peu près comment picture fonctionnait, merci pour votre aide :D
shifumi02
Utilisateur
 
Messages: 9
Inscription: Lundi 08 Mai 2017, 14:24
Statut actuel: Post-bac

Re: Refaire une certaine figure en latex

Messagepar gigiair » Vendredi 16 Juin 2017, 19:49

Les commandes de picture sont peu nombreuses et faciles à comprendre.
Les éléments graphiques sont à placer dans des \put que l'on peut imbriquer les uns dans les autres à volonté
\put (a,b) {ce qu'on veut, y compris d'autres \put}}
Attention aux blancs intempestifs dans le contenu du \put, ils sont pris en compte !

Pour éviter de sordides calculs, j'ai surchargé des éléments graphiques par d'autres éléments graphiques. Il faut donc réfléchir à l'ordre d'apparition des éléments graphiques dans la composition. Seul le dernier affiché est visible.
Avec un peu de patience, on peut donc dessiner n'importe quelle figure composée de segments de droite et de cercles.
Les courbes de Bézier sont plus délicates à insérer dans un dessin.

Voir https://fr.wikibooks.org/wiki/LaTeX/Des ... A9matiques

La réponse d'Olivier était hors sujet : on ne peut pas insérer du code Asymptote dans un document LaTeX. Asymptote ne fait pas partie du système LaTeX, en tout cas pas plus que n'importe quel logiciel capable de produire des éléments graphique.
A l'opposé, picture est dans LaTeX et ne demande aucune extension.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2268
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Refaire une certaine figure en latex

Messagepar rebouxo » Samedi 17 Juin 2017, 07:49

gigiair a écrit:La réponse d'Olivier était hors sujet : on ne peut pas insérer du code Asymptote dans un document LaTeX. Asymptote ne fait pas partie du système LaTeX, en tout cas pas plus que n'importe quel logiciel capable de produire des éléments graphique.
A l'opposé, picture est dans LaTeX et ne demande aucune extension.


Heu, non, on peut (on doit même) mettre le code asymptote dans le code LaTeX. Asymptote réclame certes une compilation supplémentaire, mais un peu comme bibtex, makeindex. Dire que cela ne fait pas partie du système LaTeX est faux. Comme bibtex, makeindex, Asymptote est installé par défaut avec TeXlive (et je pense avec MiKteX). Certes, il faut customiser la commande de compilation, c'est donc moins simple à utiliser que picture.

La précision, tout est une affaire de précision.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6729
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Refaire une certaine figure en latex

Messagepar balf » Samedi 17 Juin 2017, 17:00

Il manquait une version pstricks… Voici un code pour compiler avec pdflatex :

Code: Tout sélectionner
\documentclass[border =5pt, svgnames]{standalone}
\usepackage{pst-plot, multido}
\usepackage{auto-pst-pdf}

\begin{document}
\psset{dotsize=6pt, linecolor=Tomato, arrowLW=0pt}
\newpsobject{reddot}{psdot}{linecolor=Tomato}
\newpsobject{reddots}{psdots}{linecolor=Tomato}
\newpsobject{bluedot}{psdot}{linecolor=RoyalBlue}
\newpsobject{bluedots}{psdots}{linecolor=RoyalBlue}
\psset{labels=none, gridcolor=LightSteelBlue, subgriddiv=1, gridlabels=0pt,gridwidth=1.2pt}
\begin{pspicture}
  \psgrid(0,0)(6,6)
  \multido{\Ix=0+1}{7} {\multido{\Iy=0+1}{7}{\psdot(\Ix, \Iy)}}
\end{pspicture}
\qquad
\begin{pspicture}
  \psgrid[labels=none, gridcolor=LightSteelBlue, subgriddiv=1, gridlabels=0pt,gridwidth=1.2pt](0,0)(6,6)
  \multido{\Ix=0+1}{7} {\multido{\Iy=0+1}{7}{\psdot(\Ix, \Iy)}}
  \psset{linewidth=2.6pt, linecolor=DimGrey!80}%
  \pnodes{A}(2,3)(3,3)(2,4)(1,3)(2,2)\multido{\i=1 + 1}{4}{\pcline[fillcolor =Tomato]{-o}(A0)(A\i)\reddot(A\i)}
  \pnodes{B}(4,1)(4,0)(4,2)(3,1)\multido{\i=1 + 1}{3}{\pcline(B0)(B\i)\reddot(B\i)}
  \pnodes{C}(4,5)(5,5)(3,5)(4,4)\multido{\i=1 + 1}{3}{\pcline (C0)(C\i)\reddot(C\i)}
  \pnodes{D}(4,6)(5,6)(3,6)\multido{\i=1 + 1}{2}{\pcline(D0)(D\i)\reddot(D\i)}\pcline(D0)(C0)
  \pnodes{E}(5,1)(6,1)(5,2)(5,0)\multido{\i=1+ 1}{3}{\pcline(E0)(E\i)\reddot(E\i)}
  \bluedots(A0)(B0)(C0)(D0)(E0)
\end{pspicture}
\qquad
\begin{pspicture}
  \psgrid[labels=none, gridcolor=LightSteelBlue, subgriddiv=1, gridlabels=0pt,gridwidth=1.2pt](0,0)(6,6)
  \psset{linewidth=2.6pt, linecolor=DimGrey!80}%
  \psline(0,6)(0,5)(1,5)(1,3)(1,0)(0,0)(0,3)(1,3)
  \psline(1,2)(0,2)(0,1)(3,1)(3,0)(1,0)
  \psline(2,1)(2,0)(4,0)
  %%%%%
  \psline(1,6)(2,6)(2,2)(5,2)(5,5)(6,5)
  \psline(2,4)(4,4)(4,3)(6,3)
  \psline(5,0)(5,4)(4,4)(4,1)(5,1)%\
  \psline(6,0)(6,2)\psline(3,6)(3,5)(4,5)\psline(5,6)(6,6)
  \multido{\Ix=0+1}{7} {\multido{\Iy=0+1}{7}{\reddot(\Ix, \Iy)}}
  \bluedots(1,0)(3,0)(0,1)(2,1)(5,1)(6,1)(1,2)(2,2)(4,2)(0,3)(5,3)(0,4)(1,4)(2,4)(4,4)(0,5)(4,5)(5,5)(2,6)(3,6)(4,6)(5,6)
\end{pspicture}

\end{document}

B. A.
Fichiers joints
simplesgraphes.pdf
(7.76 Kio) Téléchargé 5 fois
balf
Zetta-utilisateur
 
Messages: 3585
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Refaire une certaine figure en latex

Messagepar gigiair » Samedi 24 Juin 2017, 18:20

On peut aussi composer une version Tikz ou une version metapost. Je ne suis pas certain que la figure soit fondamentalement améliorée.
J'ai proposé une solution avec l'environnement picture car j'ai supposé que shifumi02 ne connaissait aucun environnement de graphisme sous LaTeX. A peine une dizaine de commandes à parcourir dans le manuel. Comparer avec celui de Tikz ou même celui de Pstricks.

picture est un outil très limité, mais quand même pas nul. picture peut être utilisé par gnuplot comme backend pour produire ses graphiques à insérer dans un document LaTeX. gnuplottex le fait automatiquement (mais l'appel de gnuplot impose -shell-escape)

Il est possible d'avoir un peu plus de confort en utilisant pict2e qui fournit des commandes supplémentaires assez puissantes, dans le style de celles de pstricks : polygon, polygon* \oval amélioré etc..
Pict2e permet de s'affranchir des limitations concernant la pente des droites et le diamètre des cercles.
Je propose un petit diagramme sectoriel que j'ai réalisé avec pict2e et qui le démontre.
Code: Tout sélectionner
\documentclass[12pt,a4paper,french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
 \usepackage[pstarrows]{pict2e}
\usepackage[svgnames]{xcolor}
\usepackage{babel}

\begin{document}

\setlength{\unitlength}{.6cm}
\def\rayon{10}
 \begin{picture}(20,13)
   \put(10,0){%
     \put(0,0){\color{Aqua}\arc*[0,30]{\rayon}}
     \put(0,0){\color{MistyRose}\arc*[30,120]{\rayon}}
     \put(0,0){\color{DarkSalmon}\arc*[120,175]{\rayon}}
     \put(0,0){\color{MediumSpringGreen}\arc*[175,180]{\rayon}}
     \put(0,0){\arc[0,180]{\rayon}}
     \put(0,0){\Line(0,0)(8.66,5)}
     \put(0,0){\Line(0,0)(-5,8.66)}
     \put(0,0){\Line(0,0)(-9.96,0.87)}
     \put(0,0){\Line(-\rayon,0)(\rayon,0)}%
     \put(5,2){\fcolorbox{blue}{red}{Asymptote}}
     \put(1,7){\fcolorbox{blue}{red}{Tikz}}
     \put(-7,3){\fcolorbox{blue}{red}{Pstricks}}
     \put(-10,1.5){\fcolorbox{blue}{red}{picture}}
     \put(-9,1.2){\linethickness{1.5pt}\vector(1,-3){.25}}
     \put(-6.5,12){\makebox(8,2)[l]{\LARGE\shortstack{ Statistiques de l'usage des\\extensions graphiques\\les plus populaires}}}
   }
 \end{picture}

\end{document}

Avantage de pict2e : poids minimal du ficher pdf, pas d'usage de logiciels externe (via write18 ou non). Syntaxe de style LaTeX comme Pstricks. Compilation directe et rapide par pdflatex.

testspict2e.pdf
(13.34 Kio) Téléchargé 9 fois
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2268
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Refaire une certaine figure en latex

Messagepar balf » Samedi 24 Juin 2017, 19:59

@Gigiair: Ça alors ! Je découvre que pict2e (que j'ai très peu pratiqué, je l'avoue) a une option pstarrows. :o
balf
Zetta-utilisateur
 
Messages: 3585
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Refaire une certaine figure en latex

Messagepar gigiair » Dimanche 25 Juin 2017, 08:58

Il faut lire les docs, au moins leur préambule.
Code: Tout sélectionner
texdoc pict2e

Elles sont malheureusement le plus souvent en anglais. Il y a bien des contributeurs français, mais ils écrivent souvent en anglais seulement.
D'un autre côté, quand on est une bique en anglais comme moi, ça fait faire des progrès.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2268
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Google Adsense [Bot], Google Feedfetcher et 23 invités