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 BC
hacia 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}
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 outwards
que 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}
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}
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}
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}