我试图绘制一个相对于矩形的点,然后移动整个矩形,以便该点与另一个点对齐。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (origin) at (0,0);
\fill (origin) circle (2pt);
\path (-1.5,-1.5) -- (1.5,1.5);
\begin{scope}
\draw (-1,-1) coordinate (rect_lower_left)
rectangle (1,1)
coordinate (rect_top_right);
\coordinate (rect_top_left) at (rect_lower_left |- rect_top_right);
\fill[red] (rect_top_left) circle (2pt);
\fill[blue] (rect_lower_left) circle (2pt);
\coordinate (ref_point) at ($(rect_top_left)!0.3!(rect_lower_left)$);
\fill[green] (ref_point) circle (2pt);
\end{scope}
\end{tikzpicture}
\end{document}
结果如上图所示。我希望绿点与黑点处于同一高度。当然我可以轻松移动黑点,但在实际问题中,黑点是参考图片其余部分的点计算得出的。
这张图片显示了期望的结果。
所以我的想法是在范围内添加一个移位操作。但我当然不能使用在范围内添加的点。
另一种方法是用锚点定义新形状。但这似乎有点极端。
也许你有一个完全不同的方法给我。我正在用 cicuitikz 画一个电路。但现在我需要一个有 8 个端口的 IC(集成电路)。当然,我希望将 IC 与电路的其余部分对齐以获得直线。还有其他方法可以实现这一点吗?编辑:使用正确的搜索词,我找到了:Circuitikz - 具有相对坐标的 IC 电路
提前感谢你的帮助,Gunter
答案1
我提出另一种解决方案
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (origin) at (2,1);
\fill (origin) circle (2pt);
\path (-1.5,-1.5) -- (1.5,1.5);
\begin{scope}[shift={(origin)}]
\coordinate (ref_point) at (-1,0);
\fill[green] (ref_point) circle (2pt);
\coordinate (rightRect) at (1,0);
\coordinate (rect_top_left) at ($(ref_point)+0.3*(0,2)$);
\fill[red] (rect_top_left) circle (2pt);
\coordinate (rect_lower_left) at ($(ref_point)-0.7*(0,2)$);
\fill[blue] (rect_lower_left) circle (2pt);
\draw (rect_lower_left)
rectangle (rect_top_left-|rightRect)
coordinate (rect_top_right);
\end{scope}
\end{tikzpicture}
\end{document