使用 turtle 绘制假设字母表的数字

使用 turtle 绘制假设字母表的数字

我正在尝试通过将值编码为相应的行数来绘制假设字母表的数字,只是为了提供一个可以使用哪些不同编码方法的示例。我面临两个挑战。

为什么该sqrt()函数在下面的上下文中不起作用?atan()起作用了,所以我不应该缺少一个库。

为什么我无法使用样式中途更改乌龟线条的颜色?当我尝试在参数中用blue替换以将乌龟从其原点移动到下一个字符的起点,然后将其样式恢复为 时,什么都看不到。whitedrawblue

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{turtle}
\begin{document}
\begin{tikzpicture}
    \draw[thick,blue,turtle=home,lt=180,fd=2];
    \draw[thick,blue,turtle=home,rt,fd=2,lt=180,how=/.style={color=blue},lt=180,fd,rt={180-atan(2)},fd={sqrt(5)}]; % 63.4349488 2.24
    \draw[thick,blue,turtle=home,rt,fd=4,lt=180,how=/.style={color=blue},lt=180,fd,rt={180-atan(2)},fd=2.24,left={180-atan(2)},fd];
    \draw[thick,blue,turtle=home,rt,fd=6,lt=180,how=/.style={color=blue},lt=180,fd,rt={90+45},fd=1.414,left={180-45},fd,rt={90+45},fd=1.414];
    \draw[thick,blue,turtle=home,rt,fd=8,lt=180,how=/.style={color=blue},lt=180,fd,rt={90+45},fd=1.414,left={180-45},fd,rt={90+45},fd=1.414,left={180-45},fd];
\end{tikzpicture}
\end{document}

目标是不要让数字通过水平线连接起来。

数字

答案1

欢迎!我猜你想使用移位而不是前进。

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{turtle}
\begin{document}
\begin{tikzpicture}
    \draw[thick,blue,turtle={home,lt=180,fd=2}];
    \draw[xshift=2cm,thick,blue,turtle={home,rt,lt=180,lt=180,fd,rt={180-atan(2)},fd={2.23607}}]; % 63.4349488 2.24
    \draw[xshift=4cm,thick,blue,turtle={home,rt,lt=180,lt=180,fd,rt={180-atan(2)},fd=2.24,left={180-atan(2)},fd}];
    \draw[xshift=6cm,thick,blue,turtle={home,rt,lt=180,lt=180,fd,rt={90+45},fd=1.414,left={180-45},fd,rt={90+45},fd=1.414}];
    \draw[xshift=8cm,thick,blue,turtle={home,rt,lt=180,lt=180,fd,rt={90+45},fd=1.414,left={180-45},fd,rt={90+45},fd=1.414,left={180-45},fd}];
\end{tikzpicture}
\end{document}

在此处输入图片描述

顺便说一句,有一些小错误/拼写错误。密钥how/.style={color=blue},没有效果(正如 Henri Menke 指出的那样),更重要的是,你参与了发现问题:fd似乎无法解析其表达式。此问题将在 3.1.5 版本中修复。

相关内容