Consider the following example:
\documentclass{article}
\usepackage{pstricks-add}
\begin{document}
\begin{pspicture}(0,-0.25)(4,6.25)
\pnode(2,0){A}
\pnode(0,4){B}
\pnode(2,6){C}
\pnode(4,4){D}
\rput(1.5,3.5){\small{$A$}}
\rput(1.5,4.5){\small{$B$}}
\rput(2.5,4.5){\small{$C$}}
\rput(2.5,3.5){\small{$D$}}
\multido{\iA=0+1}{7}{\psline[linestyle=dashed,linecolor=blue](0,\iA)(4,\iA)}
\multido{\iB=0+1}{5}{\psline[linestyle=dashed,linecolor=blue](\iB,0)(\iB,6)}
\psline[linewidth=1.25pt](A)(C)
\psline[linewidth=1.25pt](B)(D)
\pspolygon[linewidth=2pt,linecolor=red](A)(B)(C)(D)
\pscurve[linewidth=1pt]{->}(2.75,4.75)(2.8,5.25)(2.65,5.75)(2,6.25)(1.25,6)(0.75,5.25)
\pscurve[linewidth=1pt]{->}(2.5,2.5)(2.95,1)(2.65,0.2)(2,-0.25)(1,0)(0.5,1.5)
\end{pspicture}
\end{document}
How do I make the curved arrows smooth?
I guess the \psbezier
function is the way to do it but I cannot make it look nice, so help will be much appreciated.
Update
In case someone finds the figure useful, here is a generalization of the code:
\documentclass[a4paper]{article}
\usepackage[hmargin=2.4cm,vmargin=3cm]{geometry}
\usepackage{subcaption}
\usepackage{auto-pst-pdf,pstricks-add}
\usepackage{expl3}
\ExplSyntaxOn
\cs_new_eq:NN
\calculate
\fp_eval:n
\ExplSyntaxOff
\newcommand*{\betegn}[3]{%
\rput(!#1 4 div \figur\space mul #2 4 div \figur\space mul){\small{$#3$}}
}
\begin{document}
\begin{figure}[htbp]
% Figure number.
\def\figur{2}
% Constants.
\def\hoejde{\calculate{3*\figur}}
\def\bredde{\calculate{2*\figur}}
\def\faktorA{\calculate{\hoejde+1}}
\def\faktorB{\calculate{\bredde+1}}
\def\faktorC{\calculate{\hoejde-1}}
\def\faktorD{\calculate{\figur-1}}
\def\skalering{\calculate{2.5/\figur}}
\centering
\psset{
unit=\skalering
}
\begin{subfigure}{0.58\textwidth}
\centering
\begin{pspicture}(\bredde,\hoejde)
\pnode(!\figur\space 0){A}
\pnode(!0 \bredde\space){B}
\pnode(!\figur\space \hoejde\space){C}
\pnode(!\bredde\space \bredde\space){D}
\betegn{3}{7}{A}
\betegn{3}{9}{B}
\betegn{5}{9}{C}
\betegn{5}{7}{D}
\psset{
linestyle=dashed,
linecolor=blue
}
\multido{\iA=0+1}{\faktorA}{\psline(0,\iA)(\bredde\space,\iA)}
\multido{\iB=0+1}{\faktorB}{\psline(\iB,0)(\iB,\hoejde\space)}
\psset{
linewidth=1.25pt,
linestyle=solid,
linecolor=black
}
\psline(A)(C)
\psline(B)(D)
\pspolygon[linewidth=2pt,linecolor=red](A)(B)(C)(D)
\end{pspicture}
\subcaption{Before the rearrangement.}
\end{subfigure}
\begin{subfigure}{0.38\textwidth}
\centering
\begin{pspicture}(\figur,\hoejde)
\pnode(0,0){A}
\pnode(!0 \bredde\space){B}
\pnode(!0 \hoejde\space){C}
\pnode(!\figur\space \hoejde\space){D}
\pnode(!\figur\space \bredde\space){E}
\pnode(!\figur\space 0){F}
\betegn{3}{7}{A}
\betegn{3}{9}{B}
\betegn{1}{11}{C}
\betegn{1}{1}{D}
\psset{
linestyle=dashed,
linecolor=blue
}
\multido{\iC=1+1}{\faktorC}{\psline(0,\iC)(\figur\space,\iC)}
\multido{\iD=1+1}{\faktorD}{\psline(\iD,0)(\iD,\hoejde\space)}
\psset{
linewidth=1.25pt,
linestyle=solid,
linecolor=black
}
\pspolygon(A)(C)(D)(F)
\psline(B)(E)
\psline[linewidth=2pt,linecolor=red](F)(B)(D)
\end{pspicture}
\subcaption{After the rearrangement.}
\end{subfigure}
\caption{Figure~$\figur$.}
\end{figure}
\end{document}
All you have to do is change the value of \figur
.
The document can be compiled with pdflatex -shell-escape filename.tex
.
psecurve
ncurv
parameter setting.curvature
. But it is better to use splines. See my answer.