見出し画像

TikZで垂線を引く方法

TikZで垂線を引く方法を書く。

コードの全体はこちらのOverLeafでご確認ください。
=> 最下部に貼りました.(Feb. 3rd, 2020)

方法1

%
% AB上に点Cから垂線を下ろす
%
\begin{tikzpicture}[
   point/.style={circle, fill=cyan!50}
 ]
 \path node[label=A, point] (A) at (0, 0) {};
 \path node[label=B, point] (B) at (2, 2) {};
 \path node[label=C, point] (C) at (0, 2) {};
 %
 % ($(A)!(C)!(B)$)は点Cの直線AB上への射影
 %
 \path node[label=D, point, color=red] (D) at ($(A)!(C)!(B)$){};
 \path[draw] (A) -- (D) -- (B);
 \path[draw] (C) -- (D);
\end{tikzpicture}

($(A)!(C)!(B)$)は,点Cから点ABに下ろした垂線の足にあたる点を表します。calcライブラリーを使わないと座標の計算ができないので注意。

方法2

%
%  calcを使ったpathの変形
%
\begin{tikzpicture}[
   point/.style={circle, fill=magenta!50}
 ]
 \path node[label=E, point] (E) at (0, 0) {};
 \path node[label=F, point] (F) at (2, 2) {};
 %
 % 直線EF上の点を指定
 %
 \path node[label=G, point, color=yellow] (G) at ($(E)!.5!(F)$){};
 %
 % EからGまで線を引いて,GからFまでの線を90°折り曲げる
 %
 \path[draw] (E) -- (G) -- ($(G)!1!90:(F)$) node[label=H, point]{};
 \path[draw] (G) -- (F);
\end{tikzpicture}

($(E)!.5!(F)$)は,線分EFの中点を表します。($(E)!.1!(F)$)とすれば,線分EFを1:9に内分する点を表します。($(G)!1!90:(F)$)は,線分GFを作るパスを90度回転させた先でたどり着く点を表します。

画像1


以下,TeXソースまるごとです.

\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage{luatexja}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
%
% AB上に点Cから垂線を下ろす
%
\begin{tikzpicture}[
   point/.style={circle, fill=cyan!50}
 ]
 \path node[label=A, point] (A) at (0, 0) {};
 \path node[label=B, point] (B) at (2, 2) {};
 \path node[label=C, point] (C) at (0, 2) {};
 %
 % ($(A)!(C)!(B)$)は点Cの直線AB上への射影
 %
 \path node[label=D, point, color=red] (D) at ($(A)!(C)!(B)$){};
 \path[draw] (A) -- (D) -- (B);
 \path[draw] (C) -- (D);
\end{tikzpicture}
%
%  calcを使ったpathの変形
%
\begin{tikzpicture}[
   point/.style={circle, fill=magenta!50}
 ]
 \path node[label=E, point] (E) at (0, 0) {};
 \path node[label=F, point] (F) at (2, 2) {};
 %
 % 直線EF上の点を指定
 %
 \path node[label=G, point, color=yellow] (G) at ($(E)!.5!(F)$){};
 %
 % EからGまで線を引いて,GからFまでの線を90°折り曲げる
 %
 \path[draw] (E) -- (G) -- ($(G)!1!90:(F)$) node[label=H, point]{};
 \path[draw] (G) -- (F);
\end{tikzpicture}
\end{document}



お役に立ったらスキしてください. サポートは投稿を続けるモチベーションになります. ありがとうございます.