我正在使用的某个函数似乎在 tikz 中有一个分段表示?
我尝试了更多的采样点,但情况并没有改善。
我的绘图中出现了锯齿状边缘。我不知道为什么。它应该像这样平滑沃尔夫拉姆阿尔法:
但相反,它是锯齿状的。
但是对于 x 大于 0.5*pi 的值,它是平滑的。我可以在 pgf 中设置一些选项以不近似对数和三角函数吗?
\documentclass[tikz]{standalone}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{tikzpicture}
\draw [->,thick] (-1,0) -- (5,0) node[right] {$x$};
\draw [->,thick] (0,-2) -- (0,2) node[above] {$y$};
\draw[domain= 0.01*pi:0.99*pi,scale=1.5,samples=600] plot ({deg(\x)}:{-1*ln(tan(\x/2 r))});
\end{tikzpicture}
\end{document}
答案1
tikz 中默认的函数实现ln
(实际上pgfmath
)比较基础,不够准确。 只安装浮点计算ln
将得到更平滑的计算结果,从而解决问题。
需要注意的是,这
fpu
实际上并没有给你更高的精度(即小数位),但显著增加了可访问数字的范围。
请注意,该选项/pgf/fpu/install only
自 pgf-tikz v3.1.6 起可用。
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta, fpu}
\begin{document}
\begin{tikzpicture}
\tikzset{/pgf/fpu/install only=ln}
\draw [->,thick] (-1,0) -- (5,0) node[right] {$x$};
\draw [->,thick] (0,-2) -- (0,2) node[above] {$y$};
\draw[domain= 0.01*pi:0.99*pi,scale=1.5,samples=600]
plot ({deg(\x)}:{-1*ln(tan(\x/2 r))});
\end{tikzpicture}
\end{document}