循环 n 次绘制线条

循环 n 次绘制线条

我正在尝试创建一个在每次迭代中绘制不同线条的代码,但如果我使用循环索引 -> \x,它不起作用。有什么建议吗?谢谢。

\documentclass[border=10pt,tikz]{standalone} 
\usepackage{amsmath}
\usepackage{tikz} 
\usepackage{graphicx} 
\usepackage{ifthen} 
\usepackage{verbatim}
\usetikzlibrary{calc}

 \begin{document}

\begin{tikzpicture}


\draw (0,0) -- (10,0) ; \draw (0,0) -- (0,10);
\draw (0,10) -- (10,10)  ; \draw (10,10) -- (10,0);
\def\mx{10}; \def\n{5};
\def\xo{5}; \def\xoo{7};
\def\yo{0}; \def\yoo{10}; 

\coordinate (p0) at (\xo,\yo);

\coordinate (p1) at (\xoo,\yoo);

\draw [red] (p0) -- (p1) ; 

\def\yn{\yoo}; 

\foreach \x in {1,..., \n} {

\draw [red] (p1) -- ((\x + 1 )*( \xoo  - \xo ) + \xo   ,10);

}

\end{tikzpicture}

\end{document}

答案1

看看,你是否喜欢获得以下图片:

在此处输入图片描述

\documentclass[border=10pt,tikz]{standalone}
\usepackage{amsmath}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
\draw (0,0) rectangle ++ (10,10);

\def\mx{10}; \def\n{5};
\def\xo{5}; \def\xoo{7};
\def\yo{0}; \def\yoo{10};

\coordinate (p0) at (\xo,\yo);
\coordinate (p1) at (\xoo,\yoo);

\draw [red] (p0) -- (p1) ;

\def\yn{\yoo};

\foreach \x in {1,..., \n}


   \def\xn{{\x*(\xoo-\xo) + \xo}};  % Edited, additional
   \def\yn{ { 10 - min(10,\yoo) } }; % Edited, additional

    \draw [red] (p1) -- ({(\x + 1)*(\xoo - \xo ) + \xo},10);% <-- corrected

           \draw [red] (p1) -- ({\xn},{\yn});% <---- I use this instead of % the above

\end{tikzpicture}
\end{document}

在上面的代码中,我以更简单的方式绘制矩形,并纠正循环中的行错误,正如我在评论中提到的那样。

相关内容