Anzeige:
Ergebnis 1 bis 3 von 3

Thema: [tikz] Eigendefiniton von Pfeilspitzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    17.01.2010
    Beiträge
    30

    [tikz] Eigendefiniton von Pfeilspitzen

    Hallo zusammen,

    ich hab mir mit dem folgenden Code eine Pfeilspitze in tikz definiert.

    Code:
    \documentclass{minimal}
    
    \usepackage{tikz}
    
    %----------meine Pfeilspitze-----------
    \pgfarrowsdeclare{myarrow}{myarrow}{...} {
    \pgfsetdash{}{0pt} % do not dash
    \pgfsetroundjoin % fix join
    \pgfsetroundcap % fix cap
    \pgfpathmoveto{\pgfpointxyz{0}{0}{0}}
    \pgfpathlineto{\pgfpointpolar{165}{5pt}}
    \pgfpathlineto{\pgfpointpolar{195}{5pt}} \pgfpathclose
    \pgfusepathqfillstroke }
    
    \usepackage[active,tightpage]{preview}  
    \PreviewEnvironment{tikzpicture} 
    \setlength\PreviewBorder{1mm}
    
    \begin{document}
    
    \begin{tikzpicture}
      \draw[-myarrow, semithick] (0,0) -- (3,0);
      \draw[-myarrow, semithick] (0,0) -- (1,2);
    \end{tikzpicture}
    
    \end{document}
    Das klappt auch alles super, sofern die Pfeile im Ursprung beginnen, wie es nach der Definition \pgfpathmoveto{\pgfpointxyz{0}{0}{0}} sein soll. Ich möchte die Pfeilspitzen gern auch für beliebige Vektoren im Raum verwenden. Ich hab jedoch noch keine Lösung dafür gefunden. Weiß jemand wie man den Befehl \pgfpointxyz umschreiben muss?

    Gruß Johannes

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    ich glaube, Du musst auch definieren, wie weit Deine Pfeilspitze übersteht, siehe dazu ``The left and right extend'' im pgfmanual.
    Als Beispiel
    Code:
    \documentclass{minimal}
    
    \usepackage{tikz}
    \newlength\mysize
    %----------meine Pfeilspitze-----------
    \pgfarrowsdeclare{myarrow}{myarrow}{%
      \mysize=5pt
      \advance\mysize by 0.5\pgflinewidth
      \pgfarrowsleftextend{+-\mysize}
      \pgfarrowsrightextend{+0.5\pgflinewidth}
    }{%
      \mysize=5pt
      \advance\mysize by 0.5\pgflinewidth
      \pgfsetdash{}{0pt} % do not dash
      \pgfsetroundjoin % fix join
      \pgfsetroundcap % fix cap
      \pgfpathmoveto{\pgfpointorigin}
      \pgfpathlineto{\pgfqpoint{+-\mysize}{+0.25\mysize}}
      \pgfpathlineto{\pgfqpoint{+-\mysize}{+-0.25\mysize}}
      \pgfpathclose
      \pgfusepathqfillstroke
    }
    
    \begin{document}
    
    \begin{tikzpicture}
      \draw[-myarrow, semithick] (0,0) -- (3,0);
      \draw[-myarrow, semithick] (0,0) -- (1,2);
      \draw[red, very thick,-myarrow] (1,2) -- (3,2);
    \draw[blue,myarrow-myarrow] (3,2) -- (3,0);
    \end{tikzpicture}
    
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.01.2010
    Beiträge
    30
    Besten Dank Rainer,

    da hab ich wohl nicht genau genug gelesen. Auf der Seite auf die du hingewiesen hast, steht auch der Code für die Pfeilspitze in leicht abgewandelter Form. Vielen Dank für den Hinweis, ich gelobe mich zu bessern.

    Und vor allem besten Dank für die fertige Lösung.

    Johannes

Lesezeichen

Berechtigungen

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