![如何根据路径的中心点放置路径?](https://linux22.com/image/241924/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E8%B7%AF%E5%BE%84%E7%9A%84%E4%B8%AD%E5%BF%83%E7%82%B9%E6%94%BE%E7%BD%AE%E8%B7%AF%E5%BE%84%EF%BC%9F.png)
假设我有一条封闭的路径,如下所示:
_
| |_
|___|
我想在该路径内绘制一个缩放版本,以便两个图形的中心相同。也就是说,无论这条路径位于何处,我都希望能够绘制一条类似的路径之内这条路。
一种可能的解决方案是通过路径的中心点移动路径。有什么建议吗?谢谢!
答案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 为您完成。