PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PSTricks: Skalierbares Custom-Shape?



batzee
12-06-2006, 10:39
Hallo Forum,
ich hab mir für pstricks folgendes custom Bildchen definiert (einen Hochspannungsblitz), das ich an mehreren Stellen in meinem Dokument einbinden möchte:


\def\flash(#1,#2){%
\pscustom[fillstyle=solid,fillcolor=70percent]{%
\moveto(#1,#2)
\rlineto(1.5,4.5) %A
\rlineto(-1.5,0) %B
\rlineto(-1,-5) %C
\rlineto(1,0) %D
\rlineto(-0.66,-2) %E
\rlineto(-0.67,0.5) %F
\rlineto(0.33,-2.2) %G
\rlineto(1.8,1.7) %H
\rlineto(-0.8,-0.1) %I
\rlineto(1,2.6)
\rlineto(-1,0)
}
}


Ich hab es soweit geschafft, das man das Shape an beliebiger Stelle im Bild einblenden kann (an Position #1/#2).

Jetzt möchte ich noch 2 weitere Dinger:

1. Das Bild sollte skalierbar sein, d.h. beim Einbinden möchte ich die Größe angeben können

2. Ich möchte auch Parameter wir fillcolor, linewidth etc. beim Einbinden angeben können.

Wie geht das?

Danke!
batzee

batzee
12-06-2006, 11:21
Durch Ausprobieren bin ich jetzt selber draufgekommen. Ist das so i.O. oder stecken noch grobe Schnitzer drin?

\def\flash(#1,#2)[#3][#4]{%
\pscustom[#4]{%
\moveto(#1,#2)
\scale{#3}
\rlineto(1.5,4.5) %A
\rlineto(-1.5,0) %B
\rlineto(-1,-5) %C
\rlineto(1,0) %D
\rlineto(-0.66,-2) %E
\rlineto(-0.67,0.5) %F
\rlineto(0.33,-2.2) %G
\rlineto(1.8,1.7) %H
\rlineto(-0.8,-0.1) %I
\rlineto(1,2.6)
\rlineto(-1,0)
}
}
\flash(2,2)[0.15][fillcolor=10percent,fillstyle=solid]

voss
12-06-2006, 11:34
Durch Ausprobieren bin ich jetzt selber draufgekommen. Ist das so i.O. oder stecken noch grobe Schnitzer drin?


das geht eleganter ...

Herbert



\documentclass{article}

\usepackage{pstricks}

\makeatletter
\def\psflash{\pst@object{psflash}}
\def\psflash@i{\@ifnextchar(\psflash@ii{\psflash@i i(0,0)}}
\def\psflash@ii(#1){%
\pst@killglue
\begingroup
\addbefore@par{fillstyle=solid,fillcolor=red}% Vorgabe
\use@par
\rput(#1){%
\pspolygon(0,0)(1,0)(0,-2.6)(0.8,-2.5)(-1,-4.2)(-1.35,-2)%
(-0.62,-2.5)(0,-0.5)(-1,-0.5)(0,4.5)(1.5,4.5)}
\endgroup%
\ignorespaces%
}
\makeatother

\begin{document}

\psflash\hspace{2cm}
\psflash[unit=0.2]\hspace{2cm}
\psflash[unit=0.5,fillcolor=black!20,linecolor=red](1,1)\hspace{2cm}
\psflash[unit=0.4,doubleline=true,fillcolor=black,linecolor =red](1,-1)

\end{document}