如何根据路径的中心点放置路径?

如何根据路径的中心点放置路径?

假设我有一条封闭的路径,如下所示:

 _
| |_
|___|

我想在该路径内绘制一个缩放版本,以便两个图形的中心相同。也就是说,无论这条路径位于何处,我都希望能够绘制一条类似的路径之内这条路。

一种可能的解决方案是通过路径的中心点移动路径。有什么建议吗?谢谢!

答案1

实际上,有一种非常好的方法可以缩放当前路径,使其变得稍微大一些(或小一些,取决于您的需要)。它依赖于current path bounding box,与 的结合scale around

\begin{tikzpicture}
  \draw 
    plot [smooth cycle] 
    coordinates {(0:1cm) (90:1cm) (210:1cm)};

  \draw[scale around={1.5:(current path bounding box.center)}] 
    plot [smooth cycle] 
    coordinates {(0:1cm) (90:1cm) (210:1cm)};
\end{tikzpicture}

得出以下结果

扩展

答案2

如果我理解正确的话,您需要绘制一个图形,然后在其中选择一个点(可能是重心,也可能不是),然后将该图形缩小为自身的副本,缩放中心位于您选择的点。如果是这样,您需要选项scale = <factor>:将其放在\draw第二个形状的命令中,所有坐标都将按 缩放(围绕原点(0,0)<factor>。如果您想围绕另一个中心缩放,请先使用选项shift = {(<x>, <y>)}(注意括号)。

如果你想围绕不同的中心进行缩放,你必须弄清楚什么是<x><y>什么是。一个简单的方法是简单地绘制你的大形状,使其重心实际上位于原点。如果你不想自己计算重心,你可以使用我在答案中描述的方法在整个 tikzpicture、范围或节点中查找内容的质心让 TikZ 为您完成。

相关内容