Karl
RPN에서 파라메트릭 포인트를 사용 하여 무작위로 생성된 노드의 목록입니다 ( 대수식에서 \curvepnodes
어떻게 사용하는지 모르겠습니다 ). rand
목록의 요소 수는 다음과 같습니다.\Karlnodecount + 1
또는 입니다 plotpoints
.
문서에서는 \psnline
두 개의 연속 노드 사이에 직선 세그먼트를 사용하여 목록을 연결하는 것만 볼 수 있습니다. 경로를 닫으려면 \closepath
내부에서 호출합니다.\pscustom
호출합니다 .
- 안타깝게도 닫히는 선분은 매끄럽게 보이지 않습니다.
- 직선 세그먼트를 사용하는 대신 곡선 세그먼트를 사용하고 싶습니다. 사용하면
\psparametricplot[plotstyle=curve]
약간 도움이 되지만 닫는 부분은 여전히 문제가 있습니다.
\documentclass[pstricks]{standalone}
\usepackage{pst-plot,pst-node}
\psset
{
fillstyle=solid,
fillcolor=gray,
linearc=2pt,
}
\begin{document}
\begin{pspicture}(-3,-3)(3,3)
\curvepnodes[plotpoints=40]{0}{360}{/R rand 1001 mod 1000 div 1.5 add def R t cos mul R t sin mul}{Karl}
\pscustom
{
\psnline(0,\Karlnodecount){Karl}
\closepath
}
\end{pspicture}
\end{document}
나는 또한 \multido
and를 사용해 \curveto
보았지만\curveto
호출당 3개의 점이 필요합니다(그 중 2개는 베지어 곡선의 제어점입니다).
노드 목록에서 닫힌 부드러운 곡선을 그리는 방법은 무엇입니까?
답변1
\documentclass{article}
\usepackage{pst-node,multido}
\SpecialCoor
\pstVerb{1234 srand}
\def\PlotImage#1{% #1: no of points
\pstVerb{ /Step 360 #1 div def } \def\randompath{}
\multido{\i=0+1}{#1}{%
\xdef\randompath{\randompath(! Rand 2 mul 1 sub 2.5 add \i\space Step mul PtoC )}}%
\begin{pspicture}[showgrid=false](-3,-3)(3,3)
\psset{fillstyle=solid,fillcolor=black!20}
\expandafter\psccurve\randompath
\psset{linecolor=red,opacity=0.4,fillcolor=blue!40}
\expandafter\psccurve\randompath
\end{pspicture}}
\begin{document}
\PlotImage{36} \PlotImage{142}
\end{document}
답변2
죄송합니다. PSTricks는 모르지만 비교를 위해 이는 Jake의 TikZ 솔루션에 해당하는 Metapost입니다.
\starttext
\startMPpage[offset=3mm]
path p;
p := for i = 0 step 10 until 350 : (1 randomized 1)*dir(i) .. endfor cycle;
draw p scaled 1cm;
\stopMPpage
\stoptext
답변3
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{hobby}
\begin{document}
\pgfmathsetseed{2}
\edef\randompath{}
\foreach \theta in {0,10,...,350} {
\pgfmathsetmacro\r{rnd+1}
\xdef\randompath{\randompath (\theta:\r) ..}
}
\begin{tikzpicture}[use Hobby shortcut]
\expandafter\draw\randompath cycle;
\end{tikzpicture}
\end{document}
답변4
방탄 솔루션.
\documentclass[pstricks]{standalone}
\usepackage{pst-node,pst-plot}
\psset{fillstyle=solid,fillcolor=gray}
\def\points{}
\pstVerb{realtime srand}
\def\N{25}
\begin{document}
\begin{pspicture}(-3,-3)(3,3)
\curvepnodes[plotpoints=\N]{0}{360}{rand 16 mod 15 div 1.5 add t PtoC}{P}
\multido{\i=0+1}{\Pnodecount}{\xdef\points{\points (P\i)}}
\expandafter\psccurve\points
\end{pspicture}
\end{document}