
2 本の線が与えられている場合、接続線が滑らかになるように 2 本を接続したいと考えています。たとえば、次の図を考えてみましょう。
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\coordinate (v1) at (0,0);
\coordinate (v2) at (2,0);
\coordinate (v3) at (4,2);
\coordinate (v4) at (4,4);
\draw[fill, black] (v1) circle[radius=1pt];
\draw[fill, black] (v2) circle[radius=1pt];
\draw[fill, black] (v3) circle[radius=1pt];
\draw[fill, black] (v4) circle[radius=1pt];
\draw (v1)--(v2);
\draw (v3)--(v4);
\draw (2,2) circle(2);
\end{tikzpicture}
\end{document}
私は実際に2本の線を結ぶ円の4分の1に興味があるのですが、困っています
- 円の残りの75%を取り除き、さらに重要なのは
- 垂直でない線に対してそのような線を計算する方法。
を使用しようとしました\draw[bend left]
が、必ずしもスムーズな接続が得られるとは限りません。もっと良い方法をご存知の方はいませんか?
答え1
このコマンドはまさにこれをcontrols
行います。ベジェ曲線これらのセグメントが垂直であるかどうかは関係ありません。また、スカラー係数.5
、.8
、1.5
などを変更して、射撃力を制御できます。
(A).. controls +(P) and +(Q) .. (B)
それは
(A).. controls (A)+(P) and (B)+(Q) .. (B)
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\path
(0,0) coordinate (v1) node[below]{$v_1$}
(1,2) coordinate (v2) node[left]{$v_2$}
(4,2) coordinate (v3) node[right]{$v_3$}
(3,4) coordinate (v4) node[above]{$v_4$}
;
\draw (v1)--(v2) (v3)--(v4);
\draw[red] (v2).. controls +($.5*(v2)-.5*(v1)$) and +($.8*(v3)-.8*(v4)$) .. (v3);
\foreach \p in {v1,v2,v3,v4}
\fill (\p) circle(2pt);
\end{tikzpicture}
\begin{tikzpicture}
\path
(0,0) coordinate (v1) node[below]{$v_1$}
(2,0) coordinate (v2) node[below]{$v_2$}
(4,2) coordinate (v3) node[right]{$v_3$}
(4,4) coordinate (v4) node[above]{$v_4$}
;
\draw (v1)--(v2) (v3)--(v4);
\draw[blue] (v2).. controls +($.5*(v2)-.5*(v1)$) and +($.8*(v3)-.8*(v4)$) .. (v3);
\foreach \p in {v1,v2,v3,v4}
\fill (\p) circle(2pt);
\end{tikzpicture}
\end{document}
答え2
キーout
と を使用できますin
。 は引数 (角度) を取り、基本的に のように動作しますbend left
が、両端に最適な角度を選択できます。
\documentclass[11pt,a4paper]{amsart}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\coordinate (v1) at (0,0);
\coordinate (v2) at (2,0);
\coordinate (v3) at (4,2);
\coordinate (v4) at (4,4);
\draw[fill, black] (v1) circle[radius=1pt];
\draw[fill, black] (v2) circle[radius=1pt];
\draw[fill, black] (v3) circle[radius=1pt];
\draw[fill, black] (v4) circle[radius=1pt];
\draw (v1)--(v2);
\draw (v3)--(v4);
\draw (2,0) to [out=0, in=270] (4,2);
\end{tikzpicture}
\end{document}
この特定のケースでは、あなたが指摘したように、円弧のみを挿入することもできます。たとえば、上記の例の出力は、TikZ画像の最後の行を次のように置き換えた場合と同じです。
\draw (2,0) arc [start angle=-90, end angle=0, radius=2];