Tikz: Perpendicular DESDE una recta

Tikz: Perpendicular DESDE una recta

Con tikz-pgf, puedo dibujar una perpendicular desde un punto a una recta. ¿Existe un método sólido para dibujar una perpendicular?de¿un punto? Por ejemplo, en el siguiente código, digamos que quiero elevar una perpendicular, desde un punto específico de la línea BChacia afuera.

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
    \coordinate (A) at (0,0);
    \coordinate (B) at (2,4);
    \coordinate (C) at (8,0);

    \draw(A)--(B)--(C)--cycle;
    \draw[red] (B) -- ($(A)!(B)!(C)$);

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

ingrese la descripción de la imagen aquí

Respuesta1

Acabo de escribir ese estilo enesta respuesta. Cambié ligeramente la sintaxis, por lo que debes decir

\draw[blue,vert={of {(B)--(C)} at (3,0)}];

para dibujar una línea vertical (3,0)que vaya hasta llegar a BC. Y agregué vert outwardsque es solo una envoltura de los modificadores de distancia (consulte la sección 13.5.4 La sintaxis de los modificadores de distancia del pgfmanual), y puede usarse como

    \draw[blue,vert outwards={from {($(B)!0.3!(C)$)} by 3cm on line to {(C)}}];

MWE

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[vert/.style args={of #1 at #2}{insert path={%
#2 -- (intersection cs:first
  line={#1}, second line={#2--($#2+(0,10)$)}) }},
vert outwards/.style args={from #1 by #2 on line to #3}{insert path={
#1 -- ($#1!#2!90:#3$)
}}]
    \coordinate (A) at (0,0);
    \coordinate (B) at (2,4);
    \coordinate (C) at (8,0);

    \draw(A)--(B)--(C)--cycle;
    \draw[red] (B) -- ($(A)!(B)!(C)$);

    \node[label={below left:$A$}] at (A) {};
    \node[label={above:$B$}] at (B) {};
    \node[label={below right:$C$}] at (C) {};
    \draw[blue,vert={of {(B)--(C)} at (3,0)}];
    \draw[blue,vert outwards={from {($(B)!0.3!(C)$)} by 3cm on line to {(C)}}];
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Si está dispuesto a definir un punto específico en línea (B)--(C)con su posición relativa, puede escribir sumwecomo siguiente solución simple:

\documentclass[tikz,border=10pt]{standalone}

\begin{document}
\begin{tikzpicture}
    \coordinate[label=below left:$A$]   (A) at (0,0);
    \coordinate[label=above:$B$]        (B) at (2,4);
    \coordinate[label=below right:$C$]  (C) at (8,0);

    \draw(A)--(B)-- coordinate[pos=0.3] (aux) % <--- coordinate of the point
                    (C)--cycle;
    \draw[red] (aux) -- (aux |- A);
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

Lo siento, no tikz. Entiendo la idea de @hpekris.

\documentclass[pstricks,border=10pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\foreach \i in {.3,.5,.7}{
\begin{pspicture}[PointSymbol=none,linejoin=1](0,-1)(8,4)
\pnodes(0,0){A}(2,4){B}(8,0){C}(4,0){I}
\psline(A)(B)(C)(A)
\pstHomO[HomCoef=\i,PosAngle=75]{B}{C}[M]
\pstProjection[PosAngle=-90]{A}{C}{B}[H]
\pstProjection[PosAngle=-90]{A}{C}{M}[M']
\pcline(M)(M')
\pcline(B)(H)
\end{pspicture}}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta4

Otra solución de PSTricks sólo para fines comparativos.

Proporciono algunos trucos posibles, pero puedes eliminar las partes que no quieras.

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\foreach \i in {1,2,3}{%
\begin{pspicture}(8,5)
\pstTriangle(1,1){A}(7,1){B}(3,4){C}
\psline(C)(C|A)
\pnode([nodesep=\i]{B}C){P}
\psline(P)(P|A)
\pnode([nodesep=\i,offset=\i]{B}C){Q}
\psline[linecolor=red](P)(Q)
\end{pspicture}}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada