Aimant en U

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 861
Inscription : jeudi 25 novembre 2010, 22:10

[Résolu] Aimant en U

Message par marco56 »

Bonsoir et bonne année à tous et toutes !

J'ai fait un petit schéma avec pstricks mais je suis moyennement content du résultat : les éléments cachés ne le sont pas, les traits se rejoignent moyennement bien, bref, pas hyper satisfait de mon résultat.
Si vous avez des idées, avec pstricks ou tikz, je suis preneur.
Voici mon code :

Code : Tout sélectionner

\documentclass{article}

\usepackage{pst-all}
\usepackage{pst-circ}

\begin{document}
\begin{pspicture}(-5,-1)(8,4.5)
%\psgrid[gridcolor=blue!20](-4,-1)(8,3)
\psframe[fillstyle=solid,fillcolor=black!40,linecolor=black](-3,2.4)(6,2.6)
% aimant
\rput(-1,2){
	\psarc(0,0){1}{90}{270}
	\psarc(-0.2,0){1.2}{90}{270}
	\psarc(0.6,1){1}{185}{270}
	\psline(0,1)(2,1)
	\psline(-0.2,1.2)(2,1.2)
	\psline(2,1)(2,1.2)
	\psline(0,-1)(2,-1)
	\psline(-0.2,-1.2)(2,-1.2)
	\psline(2,-1)(2,-1.2)
	\psline(-1,0.9)(0.6,2.2)
	\psline(0.6,2.2)(3.6,2.2)
	\psline(3.6,2.2)(2,1.2)
	\psline(2,1.2)(2,1)
	\psline(3.6,2)(2,1)
	\psline(3.6,2)(3.6,2.2)
	% bas
	\psline(0.6,0)(3.6,0)
	\psline(3.6,0)(2,-1)
	\psline(2,-1)(2,-1.2)
	\psline(3.6,-0.2)(2,-1.2)
	\psline(3.6,-0.2)(3.6,0)
}
\Icc[dipolestyle=normal,labeloffset=24pt](4,0)(6,0){$I$}
\psline{->}(4.5,0.6)(5.5,0.6)
\circledipole[labeloffset=0pt](6,0)(6,2.4){$A$}
\wire(4,0)(4,1.2)
\psframe[fillstyle=solid,fillcolor=black!40,linecolor=black](-5,1.2)(4,1.4)
\psline[linecolor=red,linewidth=3pt](-0.4,0.9)(2.8,2.9)
\end{pspicture}
\end{document}
Dernière modification par marco56 le dimanche 12 janvier 2020, 17:54, modifié 1 fois.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 861
Inscription : jeudi 25 novembre 2010, 22:10

Re: aimant en U

Message par marco56 »

J'ai fait mieux mais ce n'est pas encore parfait :

Code : Tout sélectionner

\documentclass{article}

\usepackage{pst-all}
\usepackage{pst-circ}

\begin{document}
\begin{pspicture}(-5,-1)(8,4.5)
%\psgrid[gridcolor=blue!20](-4,-1)(8,3)
\psframe[fillstyle=solid,fillcolor=black!40,linecolor=black](-3,2.4)(6,2.6)
% aimant
\rput(-1,2){
   \pswedge[fillstyle=solid,fillcolor=white,linecolor=white](-0.2,0){1.2}{90}{270}
   \psarc(-0.2,0){1.2}{90}{270}
   %\pswedge[fillstyle=solid,fillcolor=white,linecolor=white](0,0){1}{90}{270}
   \psarc(0,0){1}{90}{270}
   
   \psarc(0.6,1){1}{185}{270}
   \psline(0,1)(2,1)
   \psline(-0.2,1.2)(2,1.2)
   \psline(2,1)(2,1.2)
   \psline(0,-1)(2,-1)
   \psline(-0.2,-1.2)(2,-1.2)
   \psline(2,-1)(2,-1.2)
   \psline(-1,0.9)(0.6,2.2)
   \psline(0.6,2.2)(3.6,2.2)
   \psline(3.6,2.2)(2,1.2)
   \psline(2,1.2)(2,1)
   \psline(3.6,2)(2,1)
   \psline(3.6,2)(3.6,2.2)
   % bas
   \psline(0.6,0)(3.6,0)
   \psline(3.6,0)(2,-1)
   \psline(2,-1)(2,-1.2)
   \psline(3.6,-0.2)(2,-1.2)
   \psline(3.6,-0.2)(3.6,0)
}
\Icc[dipolestyle=normal,labeloffset=24pt](4,0)(6,0){$I$}
\psline{->}(4.5,0.6)(5.5,0.6)
\circledipole[labeloffset=0pt](6,0)(6,2.4){$A$}
\wire(4,0)(4,1.2)
\psframe[fillstyle=solid,fillcolor=black!40,linecolor=black](-5,1.2)(4,1.4)
\psline[linecolor=red,linewidth=3pt](-0.4,0.9)(2.8,2.9)
\end{pspicture}
\end{document}

balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 3924
Inscription : mercredi 02 janvier 2008, 23:18

Re: Aimant en U

Message par balf »

Je propose cet autre code, qui repose sur pst-eucl et ses possibilités en matière de constructions géométriques :

Code : Tout sélectionner

    \documentclass[svgnames, border=6pt]{standalone}
    \usepackage{pst-all, pst-eucl}
    \usepackage{pst-circ}

    \begin{document}

    \begin{pspicture}(-2.5,-2.5)(9,2.5)
        \wire(6.4,-0.4)(6.4,-1.8)
        \Icc[dipolestyle=normal,labeloffset=25pt](6.4,-1.8)(8.4,-1.8){$I$}
        \psline[linecolor=cyan, arrowinset=0.12]{->}(7,-1.15)(7.8,-1.15)
        \circledipole[labeloffset=0pt](8.4,-1.8)(8.4,0.5){$A$}
        \wire(8.4,0.5)(7.2,0.5)
        \psset{PointSymbol=none, PointName=none}
         \pstGeonode(0,0){O}(0,1.2){A}(0,-1.2){B}(0.8, 1){P}(0.8,2.2){C}(0.8,-0.2){D}(2.2,1.2){E}(3,2.2){F}(2.2,-1.2){G}(3,-0.2){H}
         \pstGeonode(0,1){a}(0,-1){b}(0.8,-0.4){c}(0.8,0){d}(2.2,1){e}(3,2){f}(2.2,-1){g}(3,0){h}
         \pstInterCC{O}{B}{P}{d}{K}{L}
         \pstInterCC{O}{a}{P}{d}{k}{l}
         \pstCircleNode[PosAngle=90]{O}{A}{135}{M}
         \psline[doubleline, doublesep=0.18, doublecolor=DarkSlateGray](-1.8,0.5)(7.2,0.5)
         \pscustom[linestyle=none, fillstyle=solid, fillcolor=white]{\pstArcnOAB{P}{d}{K}\pstArcOAB{O}{K}{B}\psline(B)(D)(d)}%
         \pscustom[ fillstyle=solid, fillcolor=WhiteSmoke!90!Goldenrod]{\pstArcnOAB{P}{d}{k}\pstArcOAB{O}{k}{b}\psline(b)(g)(h)(d)}%
         \pstArcOAB{O}{M}{B}
         \pstArcOAB{P}{k}{d}%
         \pstCircleNode[PosAngle=90]{P}{C}{135}{N}%
         \pscustom[fillstyle=solid, fillcolor=WhiteSmoke!85!Gold]{\psline(A)(E)(F)(C)%
         \pstArcOAB{P}{C}{N} \psline(N)(M) \pstArcnOAB{O}{M}{A}}
         \pstArcOAB {O}{a}{b}
         \psline(a)(e)(E)(e)(f)(F)
         \psline(B)(G)(H)(h)(d)\psline(b)(g)(G)(g)(h)
         \psline[doubleline, doublesep=0.18, doublecolor=DarkSlateGray](-2.6,-0.5)(6.4,-0.5)
         \pstGeonode(1.7, -0.5){I}(2.5,0.5){J}
         \pstLineAB[nodesep=-0.5, linewidth=3pt, linecolor=red, arrows=cc-cc]{I}{J}
    \end{pspicture}

    \end{document} 
Résultat en p.j. J'espère que ça convient.

B.A.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 861
Inscription : jeudi 25 novembre 2010, 22:10

Re: Aimant en U

Message par marco56 »

Merci balf.
Oui, cela me convient bien : il a juste fallu que je fasse la maj de pst-eucl...