直線が一点で交わらない

直線が一点で交わらない

- 優樹 金澤 の投稿
返信数: 4
質問失礼します.点O,点Aをそれぞれ中心とする円同士の交点の1つをDとして,円に内接する四角形を作図しようとしました.すると,なぜかすべての直線がDまで届かないようになってしまいました.コンパイル自体は通るのですが,このような症例が初めてなので,困惑しています.どなたかのお知恵を拝借できればと思います.よろしくお願いいたします.
以下,ソースコードで,タイプセットはplatexです.

\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\usetikzlibrary{intersections, calc, ,angles,quotes, arrows.meta,shapes,math}

\begin{document}

\begin{tikzpicture}[scale=0.6]
\tikzstyle{every node}=[font=\footnotesize]
\tikzmath{
\a = 18; %底辺の長さ
\b = 14; %右側の辺の長さ
\c = 14; %左側の辺の長さ
\A = acos((\b^2+\c^2-\a^2)/(2*\b*\c));
\BB = acos((\c^2+\a^2-\b^2)/(2*\c*\a));
\C = acos((\a^2+\b^2-\c^2)/(2*\a*\b));
\R = \a/(2*sin(\A));
}
\coordinate (B) at (0,0);
\coordinate (A) at (\BB:\c);
\coordinate (C) at (0:\a);
\coordinate[label=left:O] (O) at (90-\A:\R);
\draw (O) circle [radius=2pt];
\draw[dotted,thick] (C) to [bend right=20] node[fill=white,midway]{$\b$} (A);
\draw[dotted,thick] (A) to [bend right=20] node[fill=white,midway]{$\b$} (B);
\draw[thick] (A)--(B)--(C)--cycle;
\foreach \P in{A,B,C} \draw ($(O)!11/10!(\P)$) node{\P};
\draw [name path=C1] (O) circle [radius=\R];
\draw [name path=C2] (A) circle [radius={2*sqrt(11)}];
\fill [name intersections={of=C1 and C2}] (intersection-2) node (D) [label=above:D] {};
\draw (A)--(D)--(C);
\draw (B)--(D);
\end{tikzpicture}

\end{document}
優樹 金澤 への返信

Re: 直線が一点で交わらない

- Z. R. の投稿

(D)coordinateではなく「大きさをもつ(rectangleの)node」であるからです。最後から6行目を

\fill [name intersections={of=C1 and C2}] (intersection-2) node[draw=red] (D) [label=above:D] {};

のように変えてnodeを可視にすれば理屈がわかると思います。

nodecoordinateに変えれば所望の結果が得られます。(coordinateなので最後の{}は削除する。)

\fill [name intersections={of=C1 and C2}] (intersection-2) coordinate (D) [label=above:D];
Z. R. への返信

Re: 直線が一点で交わらない

- Z. R. の投稿
nodecoordinateに変えれば所望の結果が得られます。

よく見たらlabelが出てませんね……。これではダメでした。

\fill [name intersections={of=C1 and C2}] (intersection-2) coordinate[label=above:D] (D);

とすればよいようです。

Z. R. への返信

Re: 直線が一点で交わらない

- 和田 勇 の投稿
b c が同じ値だから結果は変わらないのですが以下のところも直した方が良いと思います。

\draw (O) circle [radius=2pt];
- \draw[dotted,thick] (C) to [bend right=20] node[fill=white,midway]{$\b$} (A);
+ \draw[dotted,thick] (C) to [bend right=20] node[fill=white,midway]{$\c$} (A);
\draw[dotted,thick] (A) to [bend right=20] node[fill=white,midway]{$\b$} (B);
優樹 金澤 への返信

Re: 直線が一点で交わらない

- 優樹 金澤 の投稿
nodeを使用するときにあまりそのあたりを気にしていなかったです.
とても勉強になりました.皆さんありがとうございました.