TikZ: Centering dash pattern between two nodes Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Can TikZ dashed lines emulate PSTricks dashed lines?TikZ: Centering dash pattern along the pathRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?Numerical conditional within tikz keys?Input/Output Nodes - Specification and Description LanguageTikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingLine up nested tikz enviroments or how to get rid of themHow to draw a square and its diagonals with arrows?Commutative diagram with curve connecting between nodesHow can I have TikZ automata accepting nodes be the same size as nonaccepting nodes?
Why complex landing gears are used instead of simple, reliable and light weight muscle wire or shape memory alloys?
Why is there so little support for joining EFTA in the British parliament?
latest version of QGIS fails to edit attribute table of GeoJSON file
Should man-made satellites feature an intelligent inverted "cow catcher"?
Pointing to problems without suggesting solutions
malloc in main() or malloc in another function: allocating memory for a struct and its members
Table formatting with tabularx?
Besides transaction validation, are there any other uses of the Script language in Bitcoin
How many time has Arya actually used Needle?
My mentor says to set image to Fine instead of RAW — how is this different from JPG?
Inverse square law not accurate for non-point masses?
What are some likely causes to domain member PC losing contact to domain controller?
Random body shuffle every night—can we still function?
What was the last profitable war?
What criticisms of Wittgenstein's philosophy of language have been offered?
Do i imagine the linear (straight line) homotopy in a correct way?
Statistical analysis applied to methods coming out of Machine Learning
Twin's vs. Twins'
Does a random sequence of vectors span a Hilbert space?
What does 丫 mean? 丫是什么意思?
How do Java 8 default methods hеlp with lambdas?
Why are two-digit numbers in Jonathan Swift's "Gulliver's Travels" (1726) written in "German style"?
By what mechanism was the 2017 UK General Election called?
Is the Mordenkainens' Sword spell underpowered?
TikZ: Centering dash pattern between two nodes
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Can TikZ dashed lines emulate PSTricks dashed lines?TikZ: Centering dash pattern along the pathRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?Numerical conditional within tikz keys?Input/Output Nodes - Specification and Description LanguageTikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingLine up nested tikz enviroments or how to get rid of themHow to draw a square and its diagonals with arrows?Commutative diagram with curve connecting between nodesHow can I have TikZ automata accepting nodes be the same size as nonaccepting nodes?
Is there a way to draw a dashed pattern between two nodes taking the middle point of these two nodes as the center point?
This is my code:
documentclassarticle
usepackage[utf8]inputenc
usepackageamsthm,amsmath,amssymb,authblk,tikz,graphicx
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,loosely dashed,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
And the resulting figure:
It can clearly be seen that the dash from the X1 node is longer than that from the X2 node.
I want the right part of the dashed line to be the mirror image of the left part. Is there a way to do this (preferably regardless of the distance between the nodes, and the thickness or specific pattern of the line)?
tikz-pgf
add a comment |
Is there a way to draw a dashed pattern between two nodes taking the middle point of these two nodes as the center point?
This is my code:
documentclassarticle
usepackage[utf8]inputenc
usepackageamsthm,amsmath,amssymb,authblk,tikz,graphicx
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,loosely dashed,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
And the resulting figure:
It can clearly be seen that the dash from the X1 node is longer than that from the X2 node.
I want the right part of the dashed line to be the mirror image of the left part. Is there a way to do this (preferably regardless of the distance between the nodes, and the thickness or specific pattern of the line)?
tikz-pgf
Welcome to TexSE! Did you look at this question? tex.stackexchange.com/q/438299/15036
– Thruston
Apr 2 at 10:54
Trydraw [line width=3pt,-,loosely dashed,black] (x1.east) to[bend right=40] (x2.west);
– CarLaTeX
Apr 2 at 11:02
@Thruston, thanks! That was indeed on of the pages I read before submitting this question, unfortunately I was not able to understand in. @CarLaTeX, thanks! This works! (I useddraw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
)
– Joost Kruis
Apr 2 at 11:08
@CarLaTeX Please add an answer.
– JouleV
Apr 2 at 11:12
@JouleV I can't explain the reason, maybe it works only by chance. Maybe it's somehow a duplicate of tex.stackexchange.com/questions/133271/….
– CarLaTeX
Apr 2 at 12:00
add a comment |
Is there a way to draw a dashed pattern between two nodes taking the middle point of these two nodes as the center point?
This is my code:
documentclassarticle
usepackage[utf8]inputenc
usepackageamsthm,amsmath,amssymb,authblk,tikz,graphicx
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,loosely dashed,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
And the resulting figure:
It can clearly be seen that the dash from the X1 node is longer than that from the X2 node.
I want the right part of the dashed line to be the mirror image of the left part. Is there a way to do this (preferably regardless of the distance between the nodes, and the thickness or specific pattern of the line)?
tikz-pgf
Is there a way to draw a dashed pattern between two nodes taking the middle point of these two nodes as the center point?
This is my code:
documentclassarticle
usepackage[utf8]inputenc
usepackageamsthm,amsmath,amssymb,authblk,tikz,graphicx
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,loosely dashed,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
And the resulting figure:
It can clearly be seen that the dash from the X1 node is longer than that from the X2 node.
I want the right part of the dashed line to be the mirror image of the left part. Is there a way to do this (preferably regardless of the distance between the nodes, and the thickness or specific pattern of the line)?
tikz-pgf
tikz-pgf
edited Apr 2 at 14:52
JouleV
14.8k22666
14.8k22666
asked Apr 2 at 10:36
Joost KruisJoost Kruis
263
263
Welcome to TexSE! Did you look at this question? tex.stackexchange.com/q/438299/15036
– Thruston
Apr 2 at 10:54
Trydraw [line width=3pt,-,loosely dashed,black] (x1.east) to[bend right=40] (x2.west);
– CarLaTeX
Apr 2 at 11:02
@Thruston, thanks! That was indeed on of the pages I read before submitting this question, unfortunately I was not able to understand in. @CarLaTeX, thanks! This works! (I useddraw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
)
– Joost Kruis
Apr 2 at 11:08
@CarLaTeX Please add an answer.
– JouleV
Apr 2 at 11:12
@JouleV I can't explain the reason, maybe it works only by chance. Maybe it's somehow a duplicate of tex.stackexchange.com/questions/133271/….
– CarLaTeX
Apr 2 at 12:00
add a comment |
Welcome to TexSE! Did you look at this question? tex.stackexchange.com/q/438299/15036
– Thruston
Apr 2 at 10:54
Trydraw [line width=3pt,-,loosely dashed,black] (x1.east) to[bend right=40] (x2.west);
– CarLaTeX
Apr 2 at 11:02
@Thruston, thanks! That was indeed on of the pages I read before submitting this question, unfortunately I was not able to understand in. @CarLaTeX, thanks! This works! (I useddraw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
)
– Joost Kruis
Apr 2 at 11:08
@CarLaTeX Please add an answer.
– JouleV
Apr 2 at 11:12
@JouleV I can't explain the reason, maybe it works only by chance. Maybe it's somehow a duplicate of tex.stackexchange.com/questions/133271/….
– CarLaTeX
Apr 2 at 12:00
Welcome to TexSE! Did you look at this question? tex.stackexchange.com/q/438299/15036
– Thruston
Apr 2 at 10:54
Welcome to TexSE! Did you look at this question? tex.stackexchange.com/q/438299/15036
– Thruston
Apr 2 at 10:54
Try
draw [line width=3pt,-,loosely dashed,black] (x1.east) to[bend right=40] (x2.west);
– CarLaTeX
Apr 2 at 11:02
Try
draw [line width=3pt,-,loosely dashed,black] (x1.east) to[bend right=40] (x2.west);
– CarLaTeX
Apr 2 at 11:02
@Thruston, thanks! That was indeed on of the pages I read before submitting this question, unfortunately I was not able to understand in. @CarLaTeX, thanks! This works! (I used
draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
)– Joost Kruis
Apr 2 at 11:08
@Thruston, thanks! That was indeed on of the pages I read before submitting this question, unfortunately I was not able to understand in. @CarLaTeX, thanks! This works! (I used
draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
)– Joost Kruis
Apr 2 at 11:08
@CarLaTeX Please add an answer.
– JouleV
Apr 2 at 11:12
@CarLaTeX Please add an answer.
– JouleV
Apr 2 at 11:12
@JouleV I can't explain the reason, maybe it works only by chance. Maybe it's somehow a duplicate of tex.stackexchange.com/questions/133271/….
– CarLaTeX
Apr 2 at 12:00
@JouleV I can't explain the reason, maybe it works only by chance. Maybe it's somehow a duplicate of tex.stackexchange.com/questions/133271/….
– CarLaTeX
Apr 2 at 12:00
add a comment |
2 Answers
2
active
oldest
votes
There are standard answers, but all of them are very advanced and hard to understand. However, with markings
one can "mirror" a half of the curve like this.
documentclass[tikz]standalone
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
%draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
path [postaction=
decorate,
decoration=
markings,
mark=at position 0.5 with coordinate (mid);
] (x1) to[bend right=40] (x2);
draw[line width=3pt,-,loosely dashed] ([xshift=-4pt]mid) to[out=180,in=-40] (x1);
draw[line width=3pt,-,loosely dashed] ([xshift=4pt]mid) to[out=0,in=-140] (x2);
endtikzpicture
enddocument
add a comment |
Another way is to measure the path and then stretch the dash length a bit in such a way that the path ends with a full on
. Please also note that tikzstyle
is deprecated.
documentclassarticle
usepackagetikz
usetikzlibrarydecorations.markings
tikzset
full dash/.style args=on #1 off #2
decoration=
markings,
mark=at position 0 with
pgfmathsetmacromystretch((pgfdecoratedpathlength-#1)/(#1+#2))/int((pgfdecoratedpathlength-#1)/(#1+#2))
pgfmathsetmacromyon#1*mystretch
xdefmyonmyon
pgfmathsetmacromyoff#2*mystretch
xdefmyoffmyoff
,
,
preaction=decorate,draw=none,
postaction=draw,dash pattern=on myon pt off myoff pt
,
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,full dash=on 3pt off 6pt,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
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%2f482750%2ftikz-centering-dash-pattern-between-two-nodes%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
There are standard answers, but all of them are very advanced and hard to understand. However, with markings
one can "mirror" a half of the curve like this.
documentclass[tikz]standalone
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
%draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
path [postaction=
decorate,
decoration=
markings,
mark=at position 0.5 with coordinate (mid);
] (x1) to[bend right=40] (x2);
draw[line width=3pt,-,loosely dashed] ([xshift=-4pt]mid) to[out=180,in=-40] (x1);
draw[line width=3pt,-,loosely dashed] ([xshift=4pt]mid) to[out=0,in=-140] (x2);
endtikzpicture
enddocument
add a comment |
There are standard answers, but all of them are very advanced and hard to understand. However, with markings
one can "mirror" a half of the curve like this.
documentclass[tikz]standalone
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
%draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
path [postaction=
decorate,
decoration=
markings,
mark=at position 0.5 with coordinate (mid);
] (x1) to[bend right=40] (x2);
draw[line width=3pt,-,loosely dashed] ([xshift=-4pt]mid) to[out=180,in=-40] (x1);
draw[line width=3pt,-,loosely dashed] ([xshift=4pt]mid) to[out=0,in=-140] (x2);
endtikzpicture
enddocument
add a comment |
There are standard answers, but all of them are very advanced and hard to understand. However, with markings
one can "mirror" a half of the curve like this.
documentclass[tikz]standalone
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
%draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
path [postaction=
decorate,
decoration=
markings,
mark=at position 0.5 with coordinate (mid);
] (x1) to[bend right=40] (x2);
draw[line width=3pt,-,loosely dashed] ([xshift=-4pt]mid) to[out=180,in=-40] (x1);
draw[line width=3pt,-,loosely dashed] ([xshift=4pt]mid) to[out=0,in=-140] (x2);
endtikzpicture
enddocument
There are standard answers, but all of them are very advanced and hard to understand. However, with markings
one can "mirror" a half of the curve like this.
documentclass[tikz]standalone
usetikzlibraryshapes,decorations,circuits.logic.US,circuits.logic.IEC,fit,external
tikzstyleloosely dashed=[dash pattern=on 4pt off 8pt]
tikzstyleloosely dashed2=[dash pattern=on 4pt off 8pt]
begindocument
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
%draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
path [postaction=
decorate,
decoration=
markings,
mark=at position 0.5 with coordinate (mid);
] (x1) to[bend right=40] (x2);
draw[line width=3pt,-,loosely dashed] ([xshift=-4pt]mid) to[out=180,in=-40] (x1);
draw[line width=3pt,-,loosely dashed] ([xshift=4pt]mid) to[out=0,in=-140] (x2);
endtikzpicture
enddocument
answered Apr 2 at 12:56
JouleVJouleV
14.8k22666
14.8k22666
add a comment |
add a comment |
Another way is to measure the path and then stretch the dash length a bit in such a way that the path ends with a full on
. Please also note that tikzstyle
is deprecated.
documentclassarticle
usepackagetikz
usetikzlibrarydecorations.markings
tikzset
full dash/.style args=on #1 off #2
decoration=
markings,
mark=at position 0 with
pgfmathsetmacromystretch((pgfdecoratedpathlength-#1)/(#1+#2))/int((pgfdecoratedpathlength-#1)/(#1+#2))
pgfmathsetmacromyon#1*mystretch
xdefmyonmyon
pgfmathsetmacromyoff#2*mystretch
xdefmyoffmyoff
,
,
preaction=decorate,draw=none,
postaction=draw,dash pattern=on myon pt off myoff pt
,
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,full dash=on 3pt off 6pt,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
add a comment |
Another way is to measure the path and then stretch the dash length a bit in such a way that the path ends with a full on
. Please also note that tikzstyle
is deprecated.
documentclassarticle
usepackagetikz
usetikzlibrarydecorations.markings
tikzset
full dash/.style args=on #1 off #2
decoration=
markings,
mark=at position 0 with
pgfmathsetmacromystretch((pgfdecoratedpathlength-#1)/(#1+#2))/int((pgfdecoratedpathlength-#1)/(#1+#2))
pgfmathsetmacromyon#1*mystretch
xdefmyonmyon
pgfmathsetmacromyoff#2*mystretch
xdefmyoffmyoff
,
,
preaction=decorate,draw=none,
postaction=draw,dash pattern=on myon pt off myoff pt
,
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,full dash=on 3pt off 6pt,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
add a comment |
Another way is to measure the path and then stretch the dash length a bit in such a way that the path ends with a full on
. Please also note that tikzstyle
is deprecated.
documentclassarticle
usepackagetikz
usetikzlibrarydecorations.markings
tikzset
full dash/.style args=on #1 off #2
decoration=
markings,
mark=at position 0 with
pgfmathsetmacromystretch((pgfdecoratedpathlength-#1)/(#1+#2))/int((pgfdecoratedpathlength-#1)/(#1+#2))
pgfmathsetmacromyon#1*mystretch
xdefmyonmyon
pgfmathsetmacromyoff#2*mystretch
xdefmyoffmyoff
,
,
preaction=decorate,draw=none,
postaction=draw,dash pattern=on myon pt off myoff pt
,
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,full dash=on 3pt off 6pt,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
Another way is to measure the path and then stretch the dash length a bit in such a way that the path ends with a full on
. Please also note that tikzstyle
is deprecated.
documentclassarticle
usepackagetikz
usetikzlibrarydecorations.markings
tikzset
full dash/.style args=on #1 off #2
decoration=
markings,
mark=at position 0 with
pgfmathsetmacromystretch((pgfdecoratedpathlength-#1)/(#1+#2))/int((pgfdecoratedpathlength-#1)/(#1+#2))
pgfmathsetmacromyon#1*mystretch
xdefmyonmyon
pgfmathsetmacromyoff#2*mystretch
xdefmyoffmyoff
,
,
preaction=decorate,draw=none,
postaction=draw,dash pattern=on myon pt off myoff pt
,
begindocument
beginfigure
centering
begintikzpicture[every node/.style = draw=none, text=black, circle, minimum size = 13mm, fill=gray!25]
path
(0,3) node(y) $Y$
(-1.5,0) node[draw, line width=1pt](x1) $X_1$
(1.5,0) node[draw, line width=1pt](x2) $X_2$;
draw [line width=1pt,-,black] (y) -- (x1);
draw [line width=1pt,-,black] (y) -- (x2);
draw [line width=3pt,-,full dash=on 3pt off 6pt,black] (x1) to[bend right=40] (x2);
endtikzpicture
endfigure
enddocument
edited Apr 2 at 14:53
JouleV
14.8k22666
14.8k22666
answered Apr 2 at 14:52
marmotmarmot
120k6156292
120k6156292
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%2f482750%2ftikz-centering-dash-pattern-between-two-nodes%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
Welcome to TexSE! Did you look at this question? tex.stackexchange.com/q/438299/15036
– Thruston
Apr 2 at 10:54
Try
draw [line width=3pt,-,loosely dashed,black] (x1.east) to[bend right=40] (x2.west);
– CarLaTeX
Apr 2 at 11:02
@Thruston, thanks! That was indeed on of the pages I read before submitting this question, unfortunately I was not able to understand in. @CarLaTeX, thanks! This works! (I used
draw [line width=3pt,-,loosely dashed,black] (x1.south east) to[bend right=40] (x2.south west);
)– Joost Kruis
Apr 2 at 11:08
@CarLaTeX Please add an answer.
– JouleV
Apr 2 at 11:12
@JouleV I can't explain the reason, maybe it works only by chance. Maybe it's somehow a duplicate of tex.stackexchange.com/questions/133271/….
– CarLaTeX
Apr 2 at 12:00