TikZ - 将计算点移动到原点

TikZ - 将计算点移动到原点

我试图绘制一个相对于矩形的点,然后移动整个矩形,以便该点与另一个点对齐。

\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

在此处输入图片描述

相关内容