如何画一个直径为根号三的圆形空node?

发布于 2024-10-16 21:53:10
    \documentclass[tikz,border=2pt]{standalone}
    \begin{document}
    \begin{tikzpicture}
        \draw [gray!70] (0cm,0cm) grid (2cm,2cm);
        \node at (0,0) [minimum size={1.7cm},draw,circle] {};
        \node at (0,0) [minimum size={sqrt(3)},draw=red,circle] {};
    \end{tikzpicture}
    \end{document}

虽然我知道 Ti_k_z 默认单位是厘米,但是我想给上述node设定最小尺寸时,sqrt(3)后面不能加单位,加了会报错,但是不加单位好像也不等于说就是使用了厘米!

查看更多

关注者
0
被浏览
191
1 个回答
鱼香肉丝没有鱼先生
鱼香肉丝没有鱼先生.

minimum size 会先经过 \pgfmathparse 解析,得到的是一个不带单位的数值

即当你键入 minimum size = sqrt(3) 得到的是 minimum size = 1.732..., 默认单位是 pt, 所以会得到你当前的结果

最简单的解决方案是 minimum size = sqrt(3) * 1cm

当然还可以自己定义一个 operator,

\pgfmathdeclarefunction{cm}{1}{%
    \pgfmathparse{#1 * 28.45274}%
}
\pgfmathdeclareoperator{cm}{cm}{2}{postfix}{250}

再使用 minimum size = sqrt(3)cm

\documentclass[tikz,border=2pt]{standalone}
\pgfmathdeclarefunction{cm}{1}{%
    \pgfmathparse{#1 * 28.45274}%
}
\pgfmathdeclareoperator{cm}{cm}{2}{postfix}{250}

\begin{document}
\begin{tikzpicture}
    \draw [gray!70] (0cm,0cm) grid (2cm,2cm);
    \node at (0,0) [minimum size={1.7cm},draw,circle] {};
    \node at (0,0) [minimum size= sqrt(3)cm,draw=red,circle] {};
\end{tikzpicture}
\end{document}

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览