PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : komplizierteres gitter mit pstricks (oder sonst wie...)



sunwukong
07-11-2005, 19:04
moin!

bevor ich krampfhaft versuche, zu erkl"aren, was ich machen will, guckt euch doch bitte einfach Abbildung 1 des folgenden pdf-files an, denn das ist auch genau das, was ich machen m"ochte:

www.eecs.berkeley.edu/~gene/Papers/qgram.filter.pdf

mit psgrid krieg ich sowas wohl kaum hin oder? w"are super, wenn mir jemand starthilfe geben k"onnte, denn ich weiss noch nicht mal, wie ich das rohe gitter plus label (sequenzen) setzen kann... besten dank im voraus!

countbela666
07-11-2005, 22:16
Mahlzeit.

hier mal eine kleine "Anregung" :D :

\documentclass{article}
\usepackage{pst-all}
\begin{document}
\psset{xunit=30pt,yunit=30pt,runit=30pt}
\begin{pspicture}(-1,0)(10,11)
\psframe[fillstyle=crosshatch,%
hatchsep=29pt,%
hatchangle=0,%
dimen=inner](0,0)(10,10)
\psframe[fillstyle=vlines,%
hatchsep=20pt,%
hatchangle=45,%
dimen=inner](0,0)(10,10)
\pspolygon*(2,7)(4,7)(9,2)(7,2)
\multido{\Ny=.5+1.0}{10}{\rput{0}(-.5,\Ny){\Ny}}
\multido{\Nx=.5+1.0}{10}{\rput{0}(\Nx,10.5){\Nx}}
\end{pspicture}
\end{document}Grüße,
Marcel

countbela666
08-11-2005, 00:17
Hmm, hab mir die Sache nochmal angesehen. Sieht in der ersten Version nicht in allen Zoomstufen gleich aus, also doch lieber so:

\documentclass{article}
\usepackage{pst-all}
\begin{document}
\psset{xunit=30pt,yunit=30pt,runit=30pt}
\begin{pspicture}(-1,0)(10,11)
\multido{\Ny=0.0+1.0}{11}{\psline(0,\Ny)(10,\Ny)}
\multido{\Nx=0.0+1.0}{11}{\psline(\Nx,0)(\Nx,10)}
\multido{\Nx=1.0+1.0,\Ny=1.0+1.0}{10}{\psline(0,\N y)(\Nx,0)}
\multido{\Nx=1.0+1.0,\Ny=1.0+1.0}{10}{\psline(\Nx, 10)(10,\Ny)}
\pspolygon*(2,7)(4,7)(9,2)(7,2)
\multido{\Ny=.5+1.0}{10}{\rput{0}(-.5,\Ny){\Ny}}
\multido{\Nx=.5+1.0}{10}{\rput{0}(\Nx,10.5){\Nx}}
\end{pspicture}
\end{document}
oder gleich richtig kompliziert und mittels Konstanten komplett skalierbar:

\documentclass{article}
\usepackage{pst-all,ifthen}
\begin{document}
\newcommand{\cols}{10} % Spaltenanzahl
\newcommand{\rows}{10} % Zeilenanzahl
\newcommand{\xoffs}{1.0}
\newcommand{\yoffs}{1.0}
\newcommand{\xpos}{0}
\newcommand{\ypos}{0}
\FPadd{\cols}{1}{\ctimes}
\FPadd{\rows}{1}{\rtimes}
\psset{xunit=30pt,yunit=30pt,runit=30pt}
\begin{pspicture}(-1,0)(\cols,\rtimes)
\multido{\Ny=0.0+1.0}{\rtimes}{\psline(0,\Ny)(\col s,\Ny)}
\multido{\Nx=0.0+1.0}{\ctimes}{\psline(\Nx,0)(\Nx, \rows)}
\ifthenelse{\cols < \rows}{
\newcommand{\diagcount}{\cols}
\FPsub{\rows}{\cols}{\yoffs}
\FPadd{\yoffs}{1.0}{\yoffs}
\FPadd{\yoffs}{\diagcount}{\ypos}
\FPsub{\ypos}{1.0}{\ypos}
\renewcommand{\xpos}{\diagcount}
\FPsub{\rows}{\cols}{\left}
\FPadd{\diagcount}{1.0}{\Nya}
\multido{\Nya=\Nya+1.0,\Nyb=1.0+1.0}{\left}{\pslin e(0,\Nya)(\cols,\Nyb)}
}{%
\newcommand{\diagcount}{\rows}
\FPsub{\cols}{\rows}{\xoffs}
\FPadd{\xoffs}{1.0}{\xoffs}
\FPadd{\diagcount}{\xoffs}{\xpos}
\FPsub{\xpos}{1.0}{\xpos}
\renewcommand{\ypos}{\diagcount}
\FPsub{\cols}{\rows}{\left}
\FPadd{\diagcount}{1.0}{\Nxb}
\multido{\Nxa=1.0+1.0,\Nxb=\Nxb+1.0}{\left}{\pslin e(\Nxa,\rows)(\Nxb,0)}
}
\multido{\Nx=1.0+1.0,\Ny=1.0+1.0}{\diagcount}{\psl ine(0,\Ny)(\Nx,0)}
\multido{\Nx=\xoffs+1.0,\Ny=\yoffs+1.0}{\diagcount }{\psline(\Nx,\ypos)(\xpos,\Ny)}
\pspolygon*(1,3)(3,3)(5,1)(3,1)
\FPadd{\rows}{.5}{\yoffs}
\multido{\Ny=.5+1.0}{\rows}{\rput{0}(-.5,\Ny){\Ny}}
\multido{\Nx=.5+1.0}{\cols}{\rput{0}(\Nx,\yoffs){\ Nx}}
\end{pspicture}
\end{document}Grüße,
Marcel

sunwukong
08-11-2005, 11:10
@countbela: besten dank! das hilft mir schon mal eine menge.