
Estoy intentando hacer que dos líneas se crucen usando la (intersection cs: first line={}, second line={})
sintaxis. Sin embargo, la compilación del siguiente ejemplo no hace lo que quiero:
%!TEX encoding = UTF-8 Unicode
%!TEX program = lualatex
\documentclass[11pt,a4paper,fleqn,pdftex]{report}
\usepackage[dvipsnames, table]{xcolor}
\usepackage[utf8]{luainputenc}
\usepackage[latin,english]{babel}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}
\coordinate (S) at (-5 ,0);
\coordinate (M'1) at (0,4.5);
\coordinate (M2) at (0,3);
\def\angleM{10}
\draw[color=Red, thick] (M'1) -- (intersection cs: first line={(M'1)--++(90 - \angleM:-8)}, second line={(-5,-5) -- (5,5)}) circle (2pt) -- (S); % (S) -> (M'1)
\draw[color=Red, thick] (M2) -- (intersection cs: first line={(M2) --++(90 - \angleM:-8)}, second line={(45:-4) -- (45:4)}) circle (2pt) -- (S); % (S) -> (M2)
\draw (S) node[ellipse, fill=white, minimum height=3cm,minimum width=2mm,draw]{$(S)$};
\begin{scope}[thick]
\draw[densely dashed] (M'1) ++(1,0) -- ++(-2,0) node[left]{$M'_1$};
\draw (M2) ++(1,0) -- ++(-2,0) node[left]{$M_2$};
\end{scope}
\fill[pattern=north east lines] (M'1) ++(1,0) rectangle ++(-2,0.2);
\fill[pattern=north east lines] (M2) ++(1,0) rectangle ++(-2,0.2);
\draw[very thick] (45:-2) -- (45:2);
\end{tikzpicture}
\end{figure}
\end{document}
Este código produce esto:
Mientras que quiero que las líneas rojas se crucen con la línea negra en el centro. ¿Hay algo que estoy haciendo mal? El manual de PGF/TikZ no proporciona ningún ejemplo de la sintaxis de intersección con rutas relativas.
Respuesta1
No dejes espacios en blanco en la especificación de las líneas en el intersection
sistema de coordenadas: en lugar de
\draw[color=Red, thick] (M'1) -- (intersection cs: first line={(M'1)--++(90 - \angleM:-8)}, second line={(-5,-5) -- (5,5)}) circle (2pt) -- (S); % (S) -> (M'1)
\draw[color=Red, thick] (M2) -- (intersection cs: first line={(M2) --++(90 - \angleM:-8)}, second line={(45:-4) -- (45:4)}) circle (2pt) -- (S); % (S) -> (M2)
Deberías usar
\draw[color=Red, thick] (M'1) -- (intersection cs: first line={(M'1)--++(90 - \angleM:-8)}, second line={(-5,-5)--(5,5)}) circle (2pt) -- (S); % (S) -> (M'1)
\draw[color=Red, thick] (M2) -- (intersection cs: first line={(M2) --++(90 - \angleM:-8)}, second line={(45:-4)--(45:4)}) circle (2pt) -- (S); % (S) -> (M2)
(para que la explicación sea más clara, tenías second line={(-5,-5) -- (5,5)}
espacios a ambos lados del --
y no debería tener second line={(-5,-5)--(5,5)})
espacios; observación similar para el otro \draw
.
El código:
%!TEX encoding = UTF-8 Unicode
%!TEX program = lualatex
\documentclass[11pt,a4paper,fleqn,pdftex]{report}
\usepackage[dvipsnames, table]{xcolor}
\usepackage[utf8]{luainputenc}
\usepackage[latin,english]{babel}
\usepackage{tikz}
\usetikzlibrary{patterns,calc}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}
\coordinate (S) at (-5 ,0);
\coordinate (M'1) at (0,4.5);
\coordinate (M2) at (0,3);
\def\angleM{10}
\draw[color=Red, thick] (M'1) -- (intersection cs: first line={(M'1)--++(90 - \angleM:-8)}, second line={(-5,-5)--(5,5)}) circle (2pt) -- (S); % (S) -> (M'1)
\draw[color=Red, thick] (M2) -- (intersection cs: first line={(M2) --++(90 - \angleM:-8)}, second line={(45:-4)--(45:4)}) circle (2pt) -- (S); % (S) -> (M2)
\draw (S) node[ellipse, fill=white, minimum height=3cm,minimum width=2mm,draw]{$(S)$};
\begin{scope}[thick]
\draw[densely dashed] (M'1) ++(1,0) -- ++(-2,0) node[left]{$M'_1$};
\draw (M2) ++(1,0) -- ++(-2,0) node[left]{$M_2$};
\end{scope}
\fill[pattern=north east lines] (M'1) ++(1,0) rectangle ++(-2,0.2);
\fill[pattern=north east lines] (M2) ++(1,0) rectangle ++(-2,0.2);
\draw[very thick] (45:-2) -- (45:2);
\coordinate (L) at ( $ (80 :-8) + (0,4.5) $ );
\end{tikzpicture}
\end{figure}
\end{document}
De hecho, puedes dejar un espacio en blanco antes --
pero no después. ¿Quizás esto podría considerarse un error?