Extending anchors in TikZAdd more anchors to standard TikZ nodesHow to add ticks in a circle in TikZRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeComputing the rectangle encompassing a node and a pointNumerical conditional within tikz keys?Help understanding the coordinate system used in tikzTikZ: 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 themNode anchor centre of line
To say I met a person for the first time
Why does nature favour the Laplacian?
Is there really no use for MD5 anymore?
How do I deal with a coworker that keeps asking to make small superficial changes to a report, and it is seriously triggering my anxiety?
Apply MapThread to all but one variable
How can I practically buy stocks?
What happened to Captain America in Endgame?
How to pronounce 'C++' in Spanish
Why did C use the -> operator instead of reusing the . operator?
Binary Numbers Magic Trick
"The cow" OR "a cow" OR "cows" in this context
Does holding a wand and speaking its command word count as V/S/M spell components?
How exactly does Hawking radiation decrease the mass of black holes?
Phrase for the opposite of "foolproof"
What does the "ep" capability means?
What makes accurate emulation of old systems a difficult task?
Was there a shared-world project before "Thieves World"?
How to stop co-workers from teasing me because I know Russian?
Why isn't the definition of absolute value applied when squaring a radical containing a variable?
Mjolnir's timeline from Thor's perspective
Does a semiconductor follow Ohm's law?
What is Niska's accent?
Minor Revision with suggestion of an alternative proof by reviewer
How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?
Extending anchors in TikZ
Add more anchors to standard TikZ nodesHow to add ticks in a circle in TikZRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeComputing the rectangle encompassing a node and a pointNumerical conditional within tikz keys?Help understanding the coordinate system used in tikzTikZ: 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 themNode anchor centre of line
The following are the standard anchors available in TikZ (to the best of my knowledge):

documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
endtikzpicture
enddocument
Now, how do I locate the following points:
- Point between a.south and a.south west (midpoint and normal point - any point on the line)
- Point between a.south west and a.center (midpoint and normal point - any point on the line)
tikz-pgf positioning
add a comment |
The following are the standard anchors available in TikZ (to the best of my knowledge):

documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
endtikzpicture
enddocument
Now, how do I locate the following points:
- Point between a.south and a.south west (midpoint and normal point - any point on the line)
- Point between a.south west and a.center (midpoint and normal point - any point on the line)
tikz-pgf positioning
1
If you want to add new anchors to an existing shape, see tex.stackexchange.com/q/14769/86
– Loop Space
Mar 29 at 6:59
There are also.base,.base east,.base westand all the.<angle>for the standard rectangle shape.
– Kpym
Mar 29 at 10:17
add a comment |
The following are the standard anchors available in TikZ (to the best of my knowledge):

documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
endtikzpicture
enddocument
Now, how do I locate the following points:
- Point between a.south and a.south west (midpoint and normal point - any point on the line)
- Point between a.south west and a.center (midpoint and normal point - any point on the line)
tikz-pgf positioning
The following are the standard anchors available in TikZ (to the best of my knowledge):

documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
endtikzpicture
enddocument
Now, how do I locate the following points:
- Point between a.south and a.south west (midpoint and normal point - any point on the line)
- Point between a.south west and a.center (midpoint and normal point - any point on the line)
tikz-pgf positioning
tikz-pgf positioning
asked Mar 29 at 6:14
subham sonisubham soni
5,08483190
5,08483190
1
If you want to add new anchors to an existing shape, see tex.stackexchange.com/q/14769/86
– Loop Space
Mar 29 at 6:59
There are also.base,.base east,.base westand all the.<angle>for the standard rectangle shape.
– Kpym
Mar 29 at 10:17
add a comment |
1
If you want to add new anchors to an existing shape, see tex.stackexchange.com/q/14769/86
– Loop Space
Mar 29 at 6:59
There are also.base,.base east,.base westand all the.<angle>for the standard rectangle shape.
– Kpym
Mar 29 at 10:17
1
1
If you want to add new anchors to an existing shape, see tex.stackexchange.com/q/14769/86
– Loop Space
Mar 29 at 6:59
If you want to add new anchors to an existing shape, see tex.stackexchange.com/q/14769/86
– Loop Space
Mar 29 at 6:59
There are also
.base, .base east, .base west and all the .<angle> for the standard rectangle shape.– Kpym
Mar 29 at 10:17
There are also
.base, .base east, .base west and all the .<angle> for the standard rectangle shape.– Kpym
Mar 29 at 10:17
add a comment |
2 Answers
2
active
oldest
votes
You can gan get points on a line between two nodes with coordinate[pos=x], where x is a fraction. so
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw);
will give you the point in the middle between (a.south west) and (a.south). If you choose x smaller/larger, it will be closer to (a.south west)/(a-mid-sw), and for x=0 or x=1 it will coincide with (a.south west) or (a.south) respectively. Note that x can be negative or larger than 1, in which case the coordinate will be located outside the line connecting the points.
documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw)
(a.south west) -- (a.center) coordinate[pos=0.3] (a-diag);
node[label=a-mid-sw] at (a-mid-sw) [dot] ;
node[label=a-diag] at (a-diag) [dot] ;
endtikzpicture
enddocument

The calc library also allows you to mix coordinates. And you can get points on the boundary using a.angle, where the angle has to be specified in degrees. a.90, for instance, is the same as a.north, a.0 the same as a.east but in general a.45 and a.north east do not have to coincide. (Here they do because the shape is a square.) If you want to have additional anchors, you may define a new shape.
add a comment |
Another way using calc library (node labels are inspired by marmot's answer)
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at ($(a.south west)!.5!(a.south)$) [dot] ;
node[label=a-diag] at ($(a.south west)!.3!(a.center)$) [dot] ;
endtikzpicture
enddocument

In case you are using this a lot, I suggest using a macro
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
deffindmid#1#2#3($(#2)!#1!(#3)$)
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at findmid0.5a.south westa.south [dot] ;
node[label=a-diag] at findmid0.3a.south westa.center [dot] ;
endtikzpicture
enddocument
(the same output as above)
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%2f482057%2fextending-anchors-in-tikz%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
You can gan get points on a line between two nodes with coordinate[pos=x], where x is a fraction. so
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw);
will give you the point in the middle between (a.south west) and (a.south). If you choose x smaller/larger, it will be closer to (a.south west)/(a-mid-sw), and for x=0 or x=1 it will coincide with (a.south west) or (a.south) respectively. Note that x can be negative or larger than 1, in which case the coordinate will be located outside the line connecting the points.
documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw)
(a.south west) -- (a.center) coordinate[pos=0.3] (a-diag);
node[label=a-mid-sw] at (a-mid-sw) [dot] ;
node[label=a-diag] at (a-diag) [dot] ;
endtikzpicture
enddocument

The calc library also allows you to mix coordinates. And you can get points on the boundary using a.angle, where the angle has to be specified in degrees. a.90, for instance, is the same as a.north, a.0 the same as a.east but in general a.45 and a.north east do not have to coincide. (Here they do because the shape is a square.) If you want to have additional anchors, you may define a new shape.
add a comment |
You can gan get points on a line between two nodes with coordinate[pos=x], where x is a fraction. so
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw);
will give you the point in the middle between (a.south west) and (a.south). If you choose x smaller/larger, it will be closer to (a.south west)/(a-mid-sw), and for x=0 or x=1 it will coincide with (a.south west) or (a.south) respectively. Note that x can be negative or larger than 1, in which case the coordinate will be located outside the line connecting the points.
documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw)
(a.south west) -- (a.center) coordinate[pos=0.3] (a-diag);
node[label=a-mid-sw] at (a-mid-sw) [dot] ;
node[label=a-diag] at (a-diag) [dot] ;
endtikzpicture
enddocument

The calc library also allows you to mix coordinates. And you can get points on the boundary using a.angle, where the angle has to be specified in degrees. a.90, for instance, is the same as a.north, a.0 the same as a.east but in general a.45 and a.north east do not have to coincide. (Here they do because the shape is a square.) If you want to have additional anchors, you may define a new shape.
add a comment |
You can gan get points on a line between two nodes with coordinate[pos=x], where x is a fraction. so
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw);
will give you the point in the middle between (a.south west) and (a.south). If you choose x smaller/larger, it will be closer to (a.south west)/(a-mid-sw), and for x=0 or x=1 it will coincide with (a.south west) or (a.south) respectively. Note that x can be negative or larger than 1, in which case the coordinate will be located outside the line connecting the points.
documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw)
(a.south west) -- (a.center) coordinate[pos=0.3] (a-diag);
node[label=a-mid-sw] at (a-mid-sw) [dot] ;
node[label=a-diag] at (a-diag) [dot] ;
endtikzpicture
enddocument

The calc library also allows you to mix coordinates. And you can get points on the boundary using a.angle, where the angle has to be specified in degrees. a.90, for instance, is the same as a.north, a.0 the same as a.east but in general a.45 and a.north east do not have to coincide. (Here they do because the shape is a square.) If you want to have additional anchors, you may define a new shape.
You can gan get points on a line between two nodes with coordinate[pos=x], where x is a fraction. so
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw);
will give you the point in the middle between (a.south west) and (a.south). If you choose x smaller/larger, it will be closer to (a.south west)/(a-mid-sw), and for x=0 or x=1 it will coincide with (a.south west) or (a.south) respectively. Note that x can be negative or larger than 1, in which case the coordinate will be located outside the line connecting the points.
documentclassarticle
usepackagetikz
usetikzlibrarypositioning
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
path (a.south west) -- (a.south) coordinate[pos=0.5] (a-mid-sw)
(a.south west) -- (a.center) coordinate[pos=0.3] (a-diag);
node[label=a-mid-sw] at (a-mid-sw) [dot] ;
node[label=a-diag] at (a-diag) [dot] ;
endtikzpicture
enddocument

The calc library also allows you to mix coordinates. And you can get points on the boundary using a.angle, where the angle has to be specified in degrees. a.90, for instance, is the same as a.north, a.0 the same as a.east but in general a.45 and a.north east do not have to coincide. (Here they do because the shape is a square.) If you want to have additional anchors, you may define a new shape.
edited Mar 29 at 6:28
answered Mar 29 at 6:20
marmotmarmot
122k6159297
122k6159297
add a comment |
add a comment |
Another way using calc library (node labels are inspired by marmot's answer)
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at ($(a.south west)!.5!(a.south)$) [dot] ;
node[label=a-diag] at ($(a.south west)!.3!(a.center)$) [dot] ;
endtikzpicture
enddocument

In case you are using this a lot, I suggest using a macro
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
deffindmid#1#2#3($(#2)!#1!(#3)$)
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at findmid0.5a.south westa.south [dot] ;
node[label=a-diag] at findmid0.3a.south westa.center [dot] ;
endtikzpicture
enddocument
(the same output as above)
add a comment |
Another way using calc library (node labels are inspired by marmot's answer)
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at ($(a.south west)!.5!(a.south)$) [dot] ;
node[label=a-diag] at ($(a.south west)!.3!(a.center)$) [dot] ;
endtikzpicture
enddocument

In case you are using this a lot, I suggest using a macro
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
deffindmid#1#2#3($(#2)!#1!(#3)$)
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at findmid0.5a.south westa.south [dot] ;
node[label=a-diag] at findmid0.3a.south westa.center [dot] ;
endtikzpicture
enddocument
(the same output as above)
add a comment |
Another way using calc library (node labels are inspired by marmot's answer)
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at ($(a.south west)!.5!(a.south)$) [dot] ;
node[label=a-diag] at ($(a.south west)!.3!(a.center)$) [dot] ;
endtikzpicture
enddocument

In case you are using this a lot, I suggest using a macro
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
deffindmid#1#2#3($(#2)!#1!(#3)$)
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at findmid0.5a.south westa.south [dot] ;
node[label=a-diag] at findmid0.3a.south westa.center [dot] ;
endtikzpicture
enddocument
(the same output as above)
Another way using calc library (node labels are inspired by marmot's answer)
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at ($(a.south west)!.5!(a.south)$) [dot] ;
node[label=a-diag] at ($(a.south west)!.3!(a.center)$) [dot] ;
endtikzpicture
enddocument

In case you are using this a lot, I suggest using a macro
documentclass[tikz]standalone
usetikzlibrarypositioning,calc
tikzsetdot/.style =
shape = circle,
draw = black,
fill = black,
minimum size = 0.2cm
tikzsetsquarenode/.style =
shape = rectangle,
draw = black,
minimum height = 10cm,
minimum width = 10cm
deffindmid#1#2#3($(#2)!#1!(#3)$)
begindocument
begintikzpicture[node distance=2cm]
node (a) at (0,0) [squarenode] ;
node[label=a.center] at (a.center) [dot] ;
node[label=a.north] at (a.north) [dot] ;
node[label=a.south] at (a.south) [dot] ;
node[label=a.east] at (a.east) [dot] ;
node[label=a.west] at (a.west) [dot] ;
node[label=a.north east] at (a.north east) [dot] ;
node[label=a.north west] at (a.north west) [dot] ;
node[label=a.south east] at (a.south east) [dot] ;
node[label=a.south west] at (a.south west) [dot] ;
node[label=a-mid-sw] at findmid0.5a.south westa.south [dot] ;
node[label=a-diag] at findmid0.3a.south westa.center [dot] ;
endtikzpicture
enddocument
(the same output as above)
answered Mar 29 at 7:28
JouleVJouleV
16.1k22667
16.1k22667
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%2f482057%2fextending-anchors-in-tikz%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
1
If you want to add new anchors to an existing shape, see tex.stackexchange.com/q/14769/86
– Loop Space
Mar 29 at 6:59
There are also
.base,.base east,.base westand all the.<angle>for the standard rectangle shape.– Kpym
Mar 29 at 10:17