I aimed at drawing a square (using TikZ) with a red dot inside it, placed on the intersection of its diagonals:
And while the following method worked fine:
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (1,1);
\coordinate (c) at (1,0);
\coordinate (d) at (0,1);
\coordinate (i) at (intersection of a--b and c--d);
\fill[red] (i) circle (2pt);
\draw (0,0) rectangle (1,1);
\end{tikzpicture}
\end{document}
when I tried this solution which does not involve specification of the coordinates:
\begin{tikzpicture}
\coordinate (i) at (intersection of {(0,0)--(1,1)} and {(1,0)--(0,1)});
\fill[red] (i) circle (2pt);
\draw (0,0) rectangle (1,1);
\end{tikzpicture}
the result was:
So I tried modifying the code to this:
\begin{tikzpicture}
\draw (0,0) rectangle (1,1);
\coordinate (i) at (intersection of {(0,0)--(1,1)} and {(1,0)--(0,1)});
\fill[red] (i) circle (2pt);
\end{tikzpicture}
which resulted in the following error message:
! Package PGF Math Error: You asked me to calculate `1/0.0', but I cannot divide any number by zero.
And here's the question – I do not understand why the codes above behave like that. What is the difference between computing the intersection point via defined coordinates and via points on the plane directly. Could you please explain this to me?
Best Answer
Although syntax used by Mad Hatter is still valid, it's and old syntax which is not anymore documented in TikZ 3.0. So, for completion, the a la TikZ 3.0 way to obtain similar results could be:
intersections
library\path[name path=ac] (0,0)--(1,1);
...name intersections={of=ac and bd}
More information about
intersections
library in 13.3.2 Intersections of arbitrary paths.Complete code: