我想重新创建以下几何序列,不带颜色和字体:
用 Lua 编写序列器非常简单:
\begin{luacode}
local sequence = {}
function geo_seq (a, r, n)
for i = 1, n do
x = a * r^(i-1)
sequence[#sequence+1] = x
end
return x
end
\end{luacode}
这将创建一个表,{1, 2, 4, 8, 16}
我的计划是将其用作列表传递给 tikz 绘制函数:
\newcommand\printseqq[3]{\directlua{print_seq(#1,#2,#3)}}
\begin{tikzpicture}[scale = 0.4]
\draw[latex-latex] (0,0) -- (21,0);
\foreach \x in {0,...,21}
\draw[shift={(\x,0)},color=black] (0pt,0pt) -- (0pt,-2pt) node[below]
% \foreach \x in \printseqq{1}{2}{5}
% \draw[->, bend left] (0,0) to (\x,0);
{$\x$};
\end{tikzpicture}
类似的东西在哪里print_seq
:
function print_seq (a, r, n)
geo_seq(a, r, n)
tex.print("")
for index, value in ipairs(sequence) do
tex.print(math.floor(value)..[[, ]])
tex.print("")
end
end
但我似乎无法传递表或tex.print
以允许我指定 tikz 使用的节点的方式使用函数。
答案1
在等待TikZ
或时...
,你可以使用渐近线
unitsize(0.55cm,cm);
picture circlecross()
{
picture pic; // procedure
unitsize(pic,cm);
//------------
path c=circle(0,0.3);
path cross=0.2dir(-45)--0.2dir(135);
fill(pic,c,yellow);
draw(pic,cross^^rotate(90)*cross,orange);
label(pic,scale(1.2)*"$2$",0.35dir(0),orange);
//------------
return pic;
}
//add(circlecross());
// For contruction axis
draw((0,0)--(17,0));
real a=0.2;
for (int i=1; i<=16; ++i)
{
draw(Label("$"+(string) i+"$",BeginPoint),(i,-a)--(i,a),blue);
}
draw(scale(0.8)*Label("$0$",BeginPoint),(0,-a)--(0,a),orange);
// For arcs and circlecross()
pen pp=orange+1.2bp+linecap(0);
draw((1,-.75){dir(-70)}..(1.5,-1.3)..{dir(70)}(2,-.75),pp);
add(circlecross().fit(),(1.5,-1.3));
draw((2,-.75){dir(-50)}..(3,-1.3)..{dir(50)}(4,-.75),pp);
add(circlecross().fit(),(3,-1.3));
draw((4,-.75){dir(-30)}..(6,-1.3)..{dir(30)}(8,-.75),pp);
add(circlecross().fit(),(6,-1.3));
draw((8,-.75){dir(-20)}..(12,-1.3)..{dir(20)}(16,-.75),pp);
add(circlecross().fit(),(12,-1.3));
draw((16,-.75){dir(-20)}..{dir(-10)}(17,-1),pp);
也许我的代码看起来很长,因为 Asymptotenow
还没有任何用于绘图的包node
(所有示例都与deferred drawing
需要许多知识相关(simplex methods
,...
))。