Anzeige:
Ergebnis 1 bis 3 von 3

Thema: PSTricks: Skalierbares Custom-Shape?

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.05.2006
    Beiträge
    45

    PSTricks: Skalierbares Custom-Shape?

    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

  2. #2
    Registrierter Benutzer
    Registriert seit
    04.05.2006
    Beiträge
    45
    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]

  3. #3
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von batzee
    Durch Ausprobieren bin ich jetzt selber draufgekommen. Ist das so i.O. oder stecken noch grobe Schnitzer drin?
    das geht eleganter ...

    Herbert

    Code:
    \documentclass{article}
    
    \usepackage{pstricks}
    
    \makeatletter
    \def\psflash{\pst@object{psflash}}
    \def\psflash@i{\@ifnextchar(\psflash@ii{\psflash@ii(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}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •