# How to increase the dot resolution of implicit curves produced by \psplotImp?

## "Minimal" Code Snippet

\documentclass[11pt,rgb]{article}
\usepackage{pst-func}
\renewcommand\pshlabel[1]{{\color{gray}\tiny#1}}
\renewcommand\psvlabel[1]{{\color{gray}\tiny#1}}
\usepackage{graphicx}
\usepackage{bera}
\begin{document}
\noindent\scalebox{2}{%
\begin{pspicture*}[showgrid=false](-3,-3)(3,3)
\psframe[fillcolor=black,fillstyle=solid](-3,-3)(3,3)
\psaxes
[%
linecolor=gray,
tickcolor=gray,
linewidth=0.25pt,
xlabelPos=top,
xticksize=-0.05 0.05,
yticksize=-0.05 0.05%
]{<->}(0,0)(-2,-1.75)(2,2)[$\color{gray}x$,0][$\color{gray}y$,90]
\rput[br](-1.75,1.5){\Large\bf\color{cyan}We}
\rput(1.75,-1){\Large\bf\color{white}PSTricks}
\psplotImp[linecolor=red,linewidth=0.5pt](-2.5,-1.75)(2.5,2.5)%
{x 2 exp 1.25 y mul x abs sqrt sub 2 exp add 2.5 sub}
\rput(0,-2.25){\color{yellow}$x^2 + \left(\frac{5y}{4}-\sqrt{|x|}\right)^2=\frac{5}{2}$}
\end{pspicture*}}
\end{document}


I noticed the produced curve is NOT symmetric about y-axis. It has to be symmetric about y-axis actually.

-

that was not a minimal example ...

\documentclass{article}
\usepackage{pst-func}
\begin{document}

\noindent\psscalebox{2}{%
\begin{pspicture*}(-3,-3)(3,3)
\psaxes[
linecolor=gray,
tickcolor=gray,
linewidth=0.25pt,
xlabelPos=top,
labelFontSize=\scriptscriptstyle,
labelsep=2pt,
ticksize=-0.05 0.05
]{<->}(0,0)(-2,-1.75)(2,2)[$\color{gray}x$,0][$\color{gray}y$,90]
\psplotImp[linecolor=red,linewidth=0.5pt,stepFactor=0.2,
algebraic](-2.5,-1.75)(2.5,2.5){x^2+(5*y/4-sqrt(abs(x)))^2-2.5}
\end{pspicture*}}

\end{document}

-
@Herbert, thanks for informing stepFactor. I set it to 0.1 and the curve looks more smooth. – xport Dec 31 '10 at 7:33
@Herbert, can we fill in the region enclosed by the curve with a solid color? – xport Dec 31 '10 at 8:12
it is not a question of TeX or PostScript, it is a question of how an implizit defined function can be solved as a continuos series of points ... – Herbert Dec 31 '10 at 9:33
@Pieter: it is possible, but you have to take all points of the curve and sort them in a way that it will be a continous curve. On PS side it is easy to save all found points in an array and then build the continous curve. I do not have the time by now, that'S all ... – Herbert Dec 31 '10 at 10:00
@Pieter: no, not a question of the resulution. I need only a fist direction vector. As I wrote, it is in my brain, where verything works with light speed, but my fingers are very slow ... :-) – Herbert Dec 31 '10 at 10:38

the same with a simple function in parameter notation:

\documentclass{article}
\usepackage{pst-func}
\begin{document}

\begin{pspicture*}(-3,-3)(3,3)
\psaxes[linewidth=0.25pt,
xlabelPos=top,
labelFontSize=\scriptscriptstyle,
labelsep=2pt,
ticksize=0.05]{<->}(0,0)(-2,-1.75)(2,2)[$x$,0][$y$,90]
\pscustom[fillstyle=solid,fillcolor=red,opacity=0.4,
linecolor=red,linewidth=1pt,algebraic]{%
\psparametricplot{0}{2.5 .25 exp}{t^2  | 0.8*(sqrt(2.5-t^4)+t)}
\psparametricplot{2.5 .25 exp}{0}{t^2  | 0.8*(-sqrt(2.5-t^4)+t)}
\psparametricplot{0}{2.5 .25 exp}{-t^2 | 0.8*(-sqrt(2.5-t^4)+t)}
\psparametricplot{2.5 .25 exp}{0}{-t^2 | 0.8*(sqrt(2.5-t^4)+t)}
}
\end{pspicture*}

\end{document}


-
thank for this additional answer. I get a new knowledge here, especially the notation {expr1|expr2}. – xport Dec 31 '10 at 9:24
code is now simplified. – Herbert Dec 31 '10 at 9:31
I just want to inform that there is a simpler polar expression that produces "almost" identical graph. Here it is \def\x(#1){sin(#1)^3} \def\y(#1){(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))/16}, I stole it from this answer. – kiss my armpit Aug 23 '12 at 6:32
the so called heart curves are all listed here: mathworld.wolfram.com/HeartCurve.html – Herbert Aug 23 '12 at 7:27

## Still version:

\documentclass[border=12pt,pstricks]{standalone}
\usepackage{pst-plot}

\def\x(#1){sin(#1)^3}
\def\y(#1){(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))/16}

\psset{algebraic,plotpoints=100}

\begin{document}

\begin{pspicture}[showgrid=bottom](-2,-2)(2,2)
\psparametricplot[origin={0,0.15}]{0}{\psPiTwo}{\x(t)|\y(t)}
\end{pspicture}

\end{document}


## Animated version:

\documentclass[border=12pt,pstricks]{standalone}
\usepackage{pst-plot}
\usepackage[nomessages]{fp}
\FPeval\Delta{round(2*pi/30:2)}

\def\x(#1){sin(#1)^3}
\def\y(#1){(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))/16}

\psset{algebraic,plotpoints=100}

\begin{document}
\multido{\n=0.00+\Delta}{31}{%
\begin{pspicture}[showgrid=false](-1.5,-1.5)(1.5,1.5)
\psparametricplot[origin={0,0.15},linecolor=red]{0}{\n}{\x(t)|\y(t)}
\end{pspicture}}

\end{document}

-