Minimal working example:
\documentclass{amsart}
\usepackage{fp}
\usepackage{tikz}
\usetikzlibrary{fixedpointarithmetic}
\begin{document}
\begin{tikzpicture}[scale=2, fixed point arithmetic]
\draw[domain=0:360, samples=100] plot ({2*cos(\x)}, {sin(\x)});
\end{tikzpicture}
\end{document}
This renders with error: ! FP error: Illegal character 100 found in float number!.
If I remove the samples option or the fixed point arithmetic option, it renders without error. I haven't been able to find any documentation to suggest why this is or how the problem can be avoided.
Using the smooth option without manual sample control gives something that does not suffice: not only does the curve look slightly lumpy, the smoothing fails completely at the endpoints of the parameterisation.
There is some success if the endpoints of the parameterisation are moved to the point of lowest curvature (by changing the domain to 90:450), but there is still a noticeable sharpness, and this does not affect the slight lumpiness.
Breaking the render up into two piece like such, to double the samples:
\draw[domain=90:270, smooth] plot ({2*cos(\x)}, {sin(\x)});
\draw[domain=270:450, smooth] plot ({2*cos(\x)}, {sin(\x)});
You get two halves of an ellipse that are both smoother than the original render, but quite inexplicably, at distance from one another.
NB: I understand the native draw ellipse capability. The example above is highly simplified from my actual needs.
Edit: Using a bug fix found in another question:
replacing
\usetikzlibrary{fixedpointarithmetic}
with
\endlinechar=-1
\usetikzlibrary{fixedpointarithmetic}
\endlinechar=13
The error with half of the ellipse being displaced is corrected; the result is a fair but not ideal workaround. The rest of the question still stands.
samples
usesmax(2, ...)
to ensure the number is at least 2, but the functionmax
is broken, see bug report #360\pgfmathmax
and\pgfmathmin
broken withfixedpointarithmetic
.