path p ;
p = (1u,1u) -- (1u,3u) -- (3u,3u) -- (3u,1u) -- cycle ;
draw p ;
draw p scaled 2 withcolor red ;
红色方块的中心从 移动(2,2)
到(4,4)
但我希望它留在(2,2)
。
当然,在这个例子中一切都很简单,由于整数因子,我可以直接使用shifted -center p
。
然而,生活并非如此简单,对于小数因子,这个简单的技巧就无法正常工作。
path p ;
p = (1u,1u) -- (1u,3u) -- (3u,3u) -- (3u,1u) -- cycle ;
draw p ;
draw p scaled 1.5 shifted -center p withcolor red ;
那么,缩放路径时可以保持路径的中心位置吗?
答案1
是的,这是可能的。可能有更好的方法,但这里有一种方法。发生的缩放与原点有关,因此您可以移至原点,进行缩放,然后再移回。您最初的尝试之所以成功,是因为幸运地选择了正方形的位置和比例因子。
\documentclass{article}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(0);
path p ;
u:=1cm;
p = (1u,1u) -- (1u,3u) -- (3u,3u) -- (3u,1u) -- cycle ;
draw p ;
draw p scaled 1.5 shifted -center p withcolor red ;
draw p shifted -center p scaled 1.5 shifted center p withcolor blue;
endfig;
\end{mplibcode}
\end{document}