静态版本

静态版本

我正在尝试绘制一个正方形,并在圆盘后面画出四面八方的线条。就像一幅朝阳图。一定有更好的程序来编码,而不是用 while 计算圆的坐标,在循环\usetikzlibrary{calc}中使用该坐标\foreach作为路径终点坐标,然后裁剪...

画这个

这是我自己的建设性程序。循环不是计算或剪切,而是围绕正方形命名外部节点进行操作。然后另一个循环绘制一条从偏离中心点到每个名称的路径。因此不需要剪切。

\documentclass[tikz,border=16mm]{standalone}
\def\nodings(#1){%
    \foreach \x in {1,...,#1} {\foreach \y in {1,#1} {\node (noding\x-\y) at (\x,\y) {x};}}%
    \foreach \y in {1,...,#1} {\foreach \x in {1,#1} {\node (noding\x-\y) at (\x,\y) {x};}}%
    }
\def\outrays(#1,#2){%
    \foreach \x in {1,...,#1} {\foreach \y in {1,#1} {\draw[line width=1pt,rounded corners=48pt,line cap=round,bend left=24](#2,#2) to (noding\x-\y);}}%
    \foreach \y in {1,...,#1} {\foreach \x in {1,#1} {\draw[line width=1pt,rounded corners=48pt,line cap=round,bend left=24](#2,#2) to (noding\x-\y);}}%
    }
\begin{document}\begin{tikzpicture}
    \nodings(36)\outrays(36,24)
    \node[circle,fill=white,text=cyan!50!black,text width=192mm] (mydisc) at (24,24) {\fontsize{128}{1}\selectfont NAME\\TITLE};
\end{tikzpicture}\end{document}

编辑:最终有五种程序来构建这张图片。

答案1

要连接圆的边缘,您可以使用节点的边框锚点(A.120)to运算符将其连接到外部正方形。

\documentclass[tikz, border=5mm]{standalone}

\begin{document}
\begin{tikzpicture}
\draw[clip] (-2,-2) rectangle +(3,3);
\node[minimum size=5cm](A){};
\node[circle, draw, minimum size=1cm](B) at (A.center) {};
\foreach \angle in {0,5,...,360} \draw (B.\angle) to (A);
\end{tikzpicture}
\end{document}

问题是,如果圆B不在正方形的中心,A就会发生一些奇怪的事情,我不知道为什么,但可能有原因。这就是为什么那里有\draw[clip]

在此处输入图片描述

答案2

您不需要连接节点。

首先画出背景线。一切从 开始(0,0)

\foreach \angle in {0,1,...,359} \draw[cyan!50!black] (0,0)--++(\angle:4);

在此处输入图片描述

第二,画一个node白色填充的圆形:

\node[circle, fill=white, text=cyan!50!black, text width=15mm, align=center]{Orion\\2000};

在此处输入图片描述

第三(尽管这是第一个命令),定义剪辑区域:

\documentclass[tikz, border=5mm]{standalone}

\begin{document}
\begin{tikzpicture}
\path[clip] (-2.5,-3) rectangle (1.3,1.5);
\foreach \angle in {0,1,...,359} \draw[cyan!50!black] (0,0)--++(\angle:4);
\node[circle, fill=white, text=cyan!50!black, text width=15mm, align=center]{Orion\\2000};
\end{tikzpicture}
\end{document}

在此处输入图片描述

更新:

由于 OP 似乎不想使用 a,clip而是想在外部矩形上定义显式点,因此这里有另一个解决方案。它基于链接的,但named它使用的不是节点,而是calc库:

\documentclass[tikz,border=16mm]{standalone}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
    \node[minimum size=36cm, anchor=south west] (A) {};
    \foreach \j [remember=\j as \lastj (initially north west)] in {north east, south east, south west, north west}{
        \foreach \i in {0,1,...,36}
            \draw[line width=1pt, bend left=24, draw=cyan!50!black] (24,24) to ($(A.\lastj)!\i/36!(A.\j)$);
    }
    \node[circle,fill=white,text=cyan!50!black,text width=192mm, align=center] (mydisc) at (24,24) {\fontsize{128}{1}\selectfont NAME\\TITLE};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

静态版本

\documentclass[preview,pstricks,margin=5mm]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
    \psclip{\psframe[linestyle=none,linewidth=0](-5,-5)(5,5)}
        \pnode(1,1){A}\pscircle(A){2}
        \foreach \i in {0,10,...,350}{\pnode[A](2;\i){B}\psline(B)([nodesep=10]{B}A)}
    \endpsclip
\end{pspicture}
\end{document}

在此处输入图片描述

动画版

\documentclass[preview,pstricks,margin=5mm]{standalone}
\usepackage{pst-node}

\def\pict(#1){\begin{pspicture}(-5,-5)(5,5)
    \psclip{\psframe[linestyle=none,linewidth=0](-5,-5)(5,5)}
        \pnode(#1){A}\pscircle(A){2}
        \foreach \i in {0,10,...,350}{\pnode[A](2;\i){B}\psline(B)([nodesep=10]{B}A)}
    \endpsclip
\end{pspicture}}

\begin{document}
\foreach \j in {0,20,...,340}{\pict(1;\j)}
\end{document}

在此处输入图片描述

答案4

如果您想避免剪辑(虽然我不确定您为什么要这样做)您可以改用交叉点:

\documentclass[tikz, border=1mm]{standalone}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\path[name path=rect] (-2,-2) rectangle +(3,3);
\node[circle, minimum size=1cm] (A) at (0,0) {};
\foreach \angle in {0,3,...,359}{
  \begin{pgfinterruptboundingbox}
    \path[name path global=ray] (A.\angle) to ++ (\angle:10);
  \end{pgfinterruptboundingbox}
  \draw[name intersections={of=rect and ray}] (A.\angle) to (intersection-1);
}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容