Etiquetar la intersección de dos rayos.

Etiquetar la intersección de dos rayos.

Tengo el código para el rectángulo ABCDy dos de sus diagonales. Estoy tratando de dibujar rayos de vértices adyacentes Cy D, cada uno de los cuales es perpendicular a una diagonal, etiquetar la intersección de los dos rayos Py dibujar un segmento de línea que pasa por Pun segmento de línea CDque es perpendicular a CD.

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,quotes,backgrounds}


\begin{document}

\begin{tikzpicture}
\coordinate (A) at (-0.5,-0.75);
\coordinate (B) at (-0.5,0.5);
\coordinate (C) at (1,0.5);
\coordinate (D) at (1,-0.75);

\path[fill=yellow] (A) -- (B) -- (C) -- (D) -- cycle;

\path (C) -- ($(C)!1.5cm!90:(A)$);
\path (D) -- ($(D)!1.5cm!-90:(B)$);

\draw[draw=red!50, line width=0.1pt, name path=ray1] (A) -- (C);
\draw[draw=red!50, line width=0.1pt, name path=ray2] (B) -- (D);

%\coordinate [name intersections={of=ray1 and vertical,by={P}}] ;

\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]below left:$A$}] at (A) {};
\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]above left:$B$}] at (B) {};
\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]above right:$C$}] at (C) {};
\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]below right:$D$}] at (D) {};
\end{tikzpicture}
\end{document}

Respuesta1

Puede ser así.

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,quotes,backgrounds}


\begin{document}

\begin{tikzpicture}
\coordinate (A) at (-0.5,-0.75);
\coordinate (B) at (-0.5,0.5);
\coordinate (C) at (1,0.5);
\coordinate (D) at (1,-0.75);

\path[fill=yellow] (A) -- (B) -- (C) -- (D) -- cycle;

\path[draw,name path=ray1] (C) -- ($(C)!1.5cm!90:(A)$);
\path[draw,name path=ray2] (D) -- ($(D)!1.5cm!-90:(B)$);

\draw[draw=red!50, line width=0.1pt] (A) -- (C);
\draw[draw=red!50, line width=0.1pt] (B) -- (D);

\coordinate [name intersections={of=ray1 and ray2,by={P}}] ;

\node[circle,fill,inner sep=1.5pt,outer sep=0pt,label={right:$P$}] at (P) {};
\draw (P) -- ($(D)!(P)!(C)$);

\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]below left:$A$}] at (A) {};
\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]above left:$B$}] at (B) {};
\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]above right:$C$}] at (C) {};
\node[outer sep=0pt,circle, fill,inner sep=1.5pt,label={[fill=white]below right:$D$}] at (D) {};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

¿Algo como esto? Creo que el mío es diferente al de Harish Kumar, así que publicaré aunque él respondió primero. Tenga en cuenta que con mi método, el segundo punto de intersección es el que desea, por lo que nombré al primero Q para que el segundo fuera P.

\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{calc,intersections,quotes,backgrounds}

\begin{document}
  \tikzset{
    my circle/.style={outer sep=0pt, circle, fill, inner sep=1.5pt},
    my ray/.style={draw=red!50, line width=.1pt}
  }

  \begin{tikzpicture}
    \coordinate (A) at (-0.5,-0.75);
    \coordinate (B) at (-0.5,0.5);
    \coordinate (C) at (1,0.5);
    \coordinate (D) at (1,-0.75);

    \path[fill=yellow] (A) -- (B) -- (C) -- (D) -- cycle;

    \pgfmathsetmacro\myresult{atan(1.5/1.25)}
    \path [my ray, name path=ray1] (A) -- (C) -- +(-\myresult:1);
    \path [my ray, name path=ray2] (B) -- (D) -- +(\myresult:1);

    \path [name intersections={of=ray1 and ray2, by={Q,P}}] (P) node [right] {P} ;
    \draw (P) -- (C |- P);

    \node[my circle,label={[fill=white]below left:$A$}] at (A) {};
    \node[my circle,label={[fill=white]above left:$B$}] at (B) {};
    \node[my circle,label={[fill=white]above right:$C$}] at (C) {};
    \node[my circle,label={[fill=white]below right:$D$}] at (D) {};
  \end{tikzpicture}
\end{document}

rayos e intersecciones

Respuesta3

Para quien le interese, aquí tenéis unaMetapublicaciónsolución, para ser procesada con LuaLaTeX.

El punto de intersección P se calcula gracias a la siguiente instrucción, haciendo uso del práctico intersectionpointoperador de MetaPost entre dos caminos.

P = (C--A) rotatedaround (C,90) intersectionpoint (D--B) rotatedaround (D,-90);

La perpendicular a CD que pasa por P se obtiene simplemente uniendo P al punto medio del segmento CD.

Q = .5[C,D]; … draw P--Q; 

También agregué marcas de ángulo recto, gracias a la anglebetweenmacro que forma parte de MetaPost.Metafunformato.

\documentclass[border=2mm]{standalone}
\usepackage{luamplib}
  \mplibsetformat{metafun}
  \mplibtextextlabel{enable}
\begin{document}
  \begin{mplibcode}
    u := 2cm; pair A, B, C, D, P, Q; 
    A = u*(-.5,-.75); B = u*(-.5,.5); C = u*(1,.5); D = u*(1,-.75); Q = .5[C,D];
    path rectangle; rectangle = A--B--C--D--cycle;
    P = (C--A) rotatedaround (C,90) intersectionpoint (D--B) rotatedaround (D,-90);
    beginfig(1);
      fill rectangle withcolor yellow; 
      pickup pencircle scaled .1bp;
      drawoptions(withcolor red);
      draw B--D; draw A--C;
      draw C -- 1.5[C,P]; draw D -- 1.5[D,P];
      drawoptions(withcolor black);
      freelabeloffset := 5bp;
      forsuffixes M = A, B, C, D, P:
        drawdot M withpen pencircle scaled 3bp;
        freelabel("$" & str M & "$", M, center rectangle);
      endfor
      draw P--Q;
      anglemethod := 2; anglelength := 4bp;
      draw anglebetween(C--A, C--P, "");
      draw anglebetween(D--B, D--P, "");
      draw anglebetween(Q--C, Q--P, "");
    endfig;
  \end{mplibcode}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada