如何消除图片中的“过冲”?

如何消除图片中的“过冲”?

我正在尝试绘制一个填充三角形,其中一个边是弯曲的。当我执行“显而易见”的操作时,我发现弯曲的边缘超出了两端的顶点。

这是一个最小的工作示例。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \coordinate [label=left:{$a$}] (a) at (5, -2);
  \coordinate [label=right:{$b$}] (b) at (9, -3);
  \coordinate [label=right:{$c$}] (c) at (9,0);
  \filldraw [line width=2pt, color=green!70!black, fill=green!15!white] (b) -- (a) to [out=20,in=250] (c) -- (b);
  \foreach \point in {a,b,c}
  \filldraw [color=green!70!black,fill=green!70!black] (\point) circle     (1.5pt);
\end{tikzpicture}
\end{document}

带过冲的三角形

如图所示,边超出了(a)和(c)处的顶点。

提前致谢!

答案1

我想line join=bevel这就是你要找的东西。

根据 Henri Menke 的评论,最好用 结束路径-- cycle,这样可以确保此处的线连接与其余角一致。当然,在此示例中,线连接已被圆圈充分覆盖,但这仍然是一种很好的做法 :)

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line join=bevel]
  \coordinate [label=left:{$a$}] (a) at (5, -2);
  \coordinate [label=right:{$b$}] (b) at (9, -3);
  \coordinate [label=right:{$c$}] (c) at (9,0);
  \filldraw [line width=2pt, color=green!70!black, fill=green!15!white] (b) -- (a) to [out=20,in=250] (c) -- cycle;
  \foreach \point in {a,b,c}
  \filldraw [color=green!70!black,fill=green!70!black] (\point) circle     (1.5pt);
\end{tikzpicture}
\end{document}

相关内容