TikZ no calcula la intersección

TikZ no calcula la intersección

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: resultado de la compilación

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 intersectionsistema 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.

ingrese la descripción de la imagen aquí

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?

información relacionada