Skip to content

Instantly share code, notes, and snippets.

@hyuki

hyuki/chat.md Secret

Last active July 1, 2023 06:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hyuki/92a38a3d77b8d35670fb2336d0a0988a to your computer and use it in GitHub Desktop.
Save hyuki/92a38a3d77b8d35670fb2336d0a0988a to your computer and use it in GitHub Desktop.
#ChatGPT と結城浩の対話: TikZで曲線の途中の点から別の点に直線を引くにはどうしたらいいですか(posオプションを使えます)。

Model: GPT-4

Date: 2023-07-01

TikZで、\draw (x,y) to [bend left] (w,z); という曲線を描いたとき、その曲線の途中の点から別の点 (a,b)へ直線を引きたいのですが、どうすればいいですか。

TikZでは、bend leftオプションで曲線を描く際に、posオプションを使って曲線上の特定の位置を指定することができます。pos=0.5は曲線の中間点を指し、0から1までの任意の値を設定することで、曲線の始点から終点に向かっての相対位置を指定できます。

その上で、新しいポイントを定義してそれを基に直線を引くことが可能です。以下にその一例を示します。

\begin{tikzpicture}
\coordinate (P1) at (x,y);
\coordinate (P2) at (w,z);
\coordinate (P3) at (a,b);

\draw (P1) to [bend left] coordinate[pos=0.5] (M) (P2); 
\draw (M) -- (P3);
\end{tikzpicture}

上記のコードでは、まず (x,y), (w,z), (a,b) をそれぞれ P1, P2, P3 という名前の座標として定義しています。次に、P1 から P2 へ bend left オプションで曲線を描きつつ、その途中の点 M を pos=0.5 で定義します。最後に、その中間点 M から P3 へ直線を引いています。

なお、posの値を変えることで、直線の始点となる曲線上の位置を変えることができます。例えば、pos=0.3とすると、曲線の始点から30%の位置から直線が引かれます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment