How to draw disjoint Tori in latex?
I would like to draw the following diagram :
I have used the following code generated in Geogebra, but it does not make the diagram which I want.
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
It produces :
tikz-pgf diagrams
add a comment |
I would like to draw the following diagram :
I have used the following code generated in Geogebra, but it does not make the diagram which I want.
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
It produces :
tikz-pgf diagrams
add a comment |
I would like to draw the following diagram :
I have used the following code generated in Geogebra, but it does not make the diagram which I want.
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
It produces :
tikz-pgf diagrams
I would like to draw the following diagram :
I have used the following code generated in Geogebra, but it does not make the diagram which I want.
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
It produces :
tikz-pgf diagrams
tikz-pgf diagrams
asked Nov 11 '18 at 9:01
H.S.H.S.
573
573
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
To draw this curve, I used the operation Curve-To
(see p 149 of manual 3.0.1a).
draw [postaction=decorate](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
To place the arrow in the middle, I used the answer from @Caramdir TikZ: How to draw an arrow in the middle of the line?
It is possible to simplify your code. I didn't do it so you could understand the changes made. But it is always possible to do so if you wish.
documentclassarticle
usepackagetikz
usetikzlibraryarrows.meta
usetikzlibrarydecorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=Triangle,scale=.7]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
% arrow in the middle from https://tex.stackexchange.com/a/3172/138900
beginscope[decoration=markings,mark=at position 0.5 with arrow>]
draw [postaction=decorate,fill=gray!50](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
draw [postaction=decorate,fill=gray!50](5.41,-0.03)..controls +(4,-2.5) and +(4,2.5).. (5.41,-0.03);
endscope
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
add a comment |
An alternative with the same idea as @AndréC answer but without scope and with to
instead of controls
documentclassbook
usepackagetikz
usetikzlibraryarrows,decorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm, decoration=markings, mark=at position 0.52 with arrow>]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
%draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
%draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
%draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
%draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw[fill=gray,,postaction=decorate] (4,0) to[in=270, out=225] (1,0) to[in=135, out=90] (4,0);
draw[fill=gray,,postaction=decorate] (5.42,0) to[in=270, out=315] (8.42,0) to[in=45, out=90] (5.42,0);
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
PS: Please upvote his answer instead of mine because he answered before me, but his answer became visible to me after I had already created the code... and so, I decided to add it as an alternative.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f459431%2fhow-to-draw-disjoint-tori-in-latex%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
To draw this curve, I used the operation Curve-To
(see p 149 of manual 3.0.1a).
draw [postaction=decorate](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
To place the arrow in the middle, I used the answer from @Caramdir TikZ: How to draw an arrow in the middle of the line?
It is possible to simplify your code. I didn't do it so you could understand the changes made. But it is always possible to do so if you wish.
documentclassarticle
usepackagetikz
usetikzlibraryarrows.meta
usetikzlibrarydecorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=Triangle,scale=.7]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
% arrow in the middle from https://tex.stackexchange.com/a/3172/138900
beginscope[decoration=markings,mark=at position 0.5 with arrow>]
draw [postaction=decorate,fill=gray!50](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
draw [postaction=decorate,fill=gray!50](5.41,-0.03)..controls +(4,-2.5) and +(4,2.5).. (5.41,-0.03);
endscope
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
add a comment |
To draw this curve, I used the operation Curve-To
(see p 149 of manual 3.0.1a).
draw [postaction=decorate](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
To place the arrow in the middle, I used the answer from @Caramdir TikZ: How to draw an arrow in the middle of the line?
It is possible to simplify your code. I didn't do it so you could understand the changes made. But it is always possible to do so if you wish.
documentclassarticle
usepackagetikz
usetikzlibraryarrows.meta
usetikzlibrarydecorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=Triangle,scale=.7]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
% arrow in the middle from https://tex.stackexchange.com/a/3172/138900
beginscope[decoration=markings,mark=at position 0.5 with arrow>]
draw [postaction=decorate,fill=gray!50](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
draw [postaction=decorate,fill=gray!50](5.41,-0.03)..controls +(4,-2.5) and +(4,2.5).. (5.41,-0.03);
endscope
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
add a comment |
To draw this curve, I used the operation Curve-To
(see p 149 of manual 3.0.1a).
draw [postaction=decorate](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
To place the arrow in the middle, I used the answer from @Caramdir TikZ: How to draw an arrow in the middle of the line?
It is possible to simplify your code. I didn't do it so you could understand the changes made. But it is always possible to do so if you wish.
documentclassarticle
usepackagetikz
usetikzlibraryarrows.meta
usetikzlibrarydecorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=Triangle,scale=.7]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
% arrow in the middle from https://tex.stackexchange.com/a/3172/138900
beginscope[decoration=markings,mark=at position 0.5 with arrow>]
draw [postaction=decorate,fill=gray!50](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
draw [postaction=decorate,fill=gray!50](5.41,-0.03)..controls +(4,-2.5) and +(4,2.5).. (5.41,-0.03);
endscope
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
To draw this curve, I used the operation Curve-To
(see p 149 of manual 3.0.1a).
draw [postaction=decorate](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
To place the arrow in the middle, I used the answer from @Caramdir TikZ: How to draw an arrow in the middle of the line?
It is possible to simplify your code. I didn't do it so you could understand the changes made. But it is always possible to do so if you wish.
documentclassarticle
usepackagetikz
usetikzlibraryarrows.meta
usetikzlibrarydecorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=Triangle,scale=.7]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
% arrow in the middle from https://tex.stackexchange.com/a/3172/138900
beginscope[decoration=markings,mark=at position 0.5 with arrow>]
draw [postaction=decorate,fill=gray!50](4,0)..controls +(-4,-2.5) and +(-4,2.5).. (4,0);
draw [postaction=decorate,fill=gray!50](5.41,-0.03)..controls +(4,-2.5) and +(4,2.5).. (5.41,-0.03);
endscope
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
edited Nov 11 '18 at 10:16
answered Nov 11 '18 at 9:36
AndréCAndréC
8,78411447
8,78411447
add a comment |
add a comment |
An alternative with the same idea as @AndréC answer but without scope and with to
instead of controls
documentclassbook
usepackagetikz
usetikzlibraryarrows,decorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm, decoration=markings, mark=at position 0.52 with arrow>]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
%draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
%draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
%draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
%draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw[fill=gray,,postaction=decorate] (4,0) to[in=270, out=225] (1,0) to[in=135, out=90] (4,0);
draw[fill=gray,,postaction=decorate] (5.42,0) to[in=270, out=315] (8.42,0) to[in=45, out=90] (5.42,0);
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
PS: Please upvote his answer instead of mine because he answered before me, but his answer became visible to me after I had already created the code... and so, I decided to add it as an alternative.
add a comment |
An alternative with the same idea as @AndréC answer but without scope and with to
instead of controls
documentclassbook
usepackagetikz
usetikzlibraryarrows,decorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm, decoration=markings, mark=at position 0.52 with arrow>]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
%draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
%draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
%draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
%draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw[fill=gray,,postaction=decorate] (4,0) to[in=270, out=225] (1,0) to[in=135, out=90] (4,0);
draw[fill=gray,,postaction=decorate] (5.42,0) to[in=270, out=315] (8.42,0) to[in=45, out=90] (5.42,0);
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
PS: Please upvote his answer instead of mine because he answered before me, but his answer became visible to me after I had already created the code... and so, I decided to add it as an alternative.
add a comment |
An alternative with the same idea as @AndréC answer but without scope and with to
instead of controls
documentclassbook
usepackagetikz
usetikzlibraryarrows,decorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm, decoration=markings, mark=at position 0.52 with arrow>]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
%draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
%draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
%draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
%draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw[fill=gray,,postaction=decorate] (4,0) to[in=270, out=225] (1,0) to[in=135, out=90] (4,0);
draw[fill=gray,,postaction=decorate] (5.42,0) to[in=270, out=315] (8.42,0) to[in=45, out=90] (5.42,0);
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
PS: Please upvote his answer instead of mine because he answered before me, but his answer became visible to me after I had already created the code... and so, I decided to add it as an alternative.
An alternative with the same idea as @AndréC answer but without scope and with to
instead of controls
documentclassbook
usepackagetikz
usetikzlibraryarrows,decorations.markings
begindocument
begintikzpicture[line cap=round,line join=round,>=triangle 45,x=0.7cm,y=0.7cm, decoration=markings, mark=at position 0.52 with arrow>]
draw (0,4)-- (4,0);
draw (4,0)-- (0,-4);
draw (0,-4)-- (-4,0);
draw (-4,0)-- (0,4);
draw (5.41,-0.03)-- (9.41,3.97);
draw (9.41,3.97)-- (13.41,-0.03);
draw (13.41,-0.03)-- (9.41,-4.03);
draw (9.41,-4.03)-- (5.41,-0.03);
draw [->] (2,2) -- (1.47,2.53);
draw [->] (-1.59,2.41) -- (-2.26,1.74);
draw [->] (2.5,-1.5) -- (1.81,-2.19);
draw [->] (-1.55,-2.45) -- (-2.34,-1.66);
draw [->] (7.11,1.66) -- (7.67,2.22);
draw [->] (11.29,-2.16) -- (11.85,-1.59);
draw [->] (11.26,2.12) -- (11.89,1.5);
draw [->] (6.9,-1.51) -- (7.98,-2.59);
%draw [shift=(2.18,3.21)] plot[domain=4.22:5.23,variable=t](1*3.69*cos(t r)+0*3.69*sin(t r),0*3.69*cos(t r)+1*3.69*sin(t r));
%draw [shift=(2.26,-2.4)] plot[domain=0.94:2.23,variable=t](1*2.97*cos(t r)+0*2.97*sin(t r),0*2.97*cos(t r)+1*2.97*sin(t r));
%draw [shift=(7.17,-1.78)] plot[domain=0.81:2.36,variable=t](1*2.48*cos(t r)+0*2.48*sin(t r),0*2.48*cos(t r)+1*2.48*sin(t r));
%draw [shift=(7.12,2.08)] plot[domain=4.03:5.42,variable=t](1*2.71*cos(t r)+0*2.71*sin(t r),0*2.71*cos(t r)+1*2.71*sin(t r));
draw[fill=gray,,postaction=decorate] (4,0) to[in=270, out=225] (1,0) to[in=135, out=90] (4,0);
draw[fill=gray,,postaction=decorate] (5.42,0) to[in=270, out=315] (8.42,0) to[in=45, out=90] (5.42,0);
draw (2.46,-2.36) node $b1$;
draw (2.67,2.47) node $a1$;
draw (-2.17,2.32) node $b1$;
draw (-2.44,-2.18) node $a1$;
draw (-2.13,0.07) node $T1$;
draw (7.39,2.26) node $b2$;
draw (12.1,-2.06) node $b2$;
draw (10.43,-0.69) node $T2$;
draw (11.98,2.38) node $a2$;
draw (7.17,-2.24) node $a2$;
endtikzpicture
enddocument
PS: Please upvote his answer instead of mine because he answered before me, but his answer became visible to me after I had already created the code... and so, I decided to add it as an alternative.
answered Nov 11 '18 at 9:52
koleygrkoleygr
11.2k11038
11.2k11038
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f459431%2fhow-to-draw-disjoint-tori-in-latex%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown