PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pstricks: psclip invertieren?



Spindoctor
03-12-2007, 01:55
Hallo!

Ich hab eine Frage aus Interesse, ohne konkretes Problem vor dem ich gerade stehen würde.

Ist es möglich, den clip bereich von psclip zu invertieren?
Also so, dass statt nur der Bereich, der von psclip definiert wird, sichtbar ist, nur der Bereich ausserhalb von psclip sichtbar ist?

Her das ganze als Minimalbeispiel:

Aus dem hier:

Minimalbeispiel

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[naustrian]{babel}
\usepackage{pstricks-add}
\usepackage{pst-pdf}

\begin{document}
\begin{pspicture}(0,0)(10,10)

\psclip
{\psframe[linecolor=green](1,1)(5,5)}

\psframe[fillstyle=solid,fillcolor=red](3,3)(9,9)
\endpsclip

\end{pspicture}
\end{document}

soll das werden, nur nicht so umständlich, wie mit rot markiert, sondern mit einem Invertier-Befehl.

Minimalbeispiel

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[naustrian]{babel}
\usepackage{pstricks-add}
\usepackage{pst-pdf}

\begin{document}
\begin{pspicture}(0,0)(10,10)

\psclip
% {\psframe[linecolor=green](1,1)(5,5)}
{\pspolygon[linecolor=green](1,1)(1,5)(5,5)(5,1)(1,1)(0,0)(10,0)(10,10)(0,10)( 0,0)}

\psframe[fillstyle=solid,fillcolor=red](3,3)(9,9)
\endpsclip

\end{pspicture}
\end{document}

gibts sowas? danke im Vorraus,

Spin

sofa-surfer
03-12-2007, 09:15
Hallo,

kurze Verstädnisfrage: Musst du in diesem Fall nicht einfach ein ausgefülltes Objekt über den zu verdeckenden Bereich legen? (ganz ohne psclip)

Matthias

voss
03-12-2007, 09:30
Minimalbeispiel

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[naustrian]{babel}
\usepackage{pstricks-add}
\usepackage{pst-pdf}

\begin{document}
\begin{pspicture}(0,0)(10,10)

\psclip
% {\psframe[linecolor=green](1,1)(5,5)}
{\pspolygon[linecolor=green](1,1)(1,5)(5,5)(5,1)(1,1)(0,0)(10,0)(10,10)(0,10)( 0,0)}

\psframe[fillstyle=solid,fillcolor=red](3,3)(9,9)
\endpsclip

\end{pspicture}
\end{document}

gibts sowas? danke im Vorraus,


das ist dann einfaches Füllen:



\documentclass{scrreprt}
\usepackage{pstricks}

\begin{document}
\begin{pspicture}(0,0)(10,10)
\psframe[fillstyle=solid,fillcolor=red](3,3)(9,9)
\psframe[fillstyle=solid,fillcolor=white,linecolor=green](1,1)(5,5)
\end{pspicture}
\end{document}


Herbert

Spindoctor
03-12-2007, 11:44
Ja, stimmt. In diesem Minimalbeispiel wäre es das gleiche wie mit weiß füllen oder ein ausgefülltes Objekt drüberlegen, wie sofa-surfer es nennt. Wenn unter dem roten Quadrat allerdings nicht ein weißer Hintergrund wär sondern eine andere komplizierte Form, dann würde das nicht mit füllen gehen. Das hab ich in dem Minimalbeispiel nicht berücksichtigt, kann ich aber machen

Meinetwegen also so:

Minimalbeispiel

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[naustrian]{babel}
\usepackage{pstricks-add}
\usepackage{pst-pdf}

\begin{document}
\begin{pspicture}(0,0)(10,10)

\psRandom[dotsize=6pt,dotstyle=pentagon,fillcolor=blue,fills tyle=solid,randomPoints=500](0,0)(10,10){}

\psclip
% {\psframe[linecolor=green](1,1)(5,5)}
{\pspolygon[linecolor=green](1,1)(1,5)(5,5)(5,1)(1,1)(0,0)(10,0)(10,10)(0,10)( 0,0)}

\psframe[fillstyle=solid,fillcolor=red](3,3)(9,9)
\endpsclip

\end{pspicture}
\end{document}

Danke nochmal,

Spin

voss
03-12-2007, 13:02
Ja, stimmt. In diesem Minimalbeispiel wäre es das gleiche wie mit weiß füllen oder ein ausgefülltes Objekt drüberlegen, wie sofa-surfer es nennt. Wenn unter dem roten Quadrat allerdings nicht ein weißer Hintergrund wär sondern eine andere komplizierte Form, dann würde das nicht mit füllen gehen. Das hab ich in dem Minimalbeispiel nicht berücksichtigt, kann ich aber machen


nein, das geht nicht, weil clipping immer einen geschlossenen
Pfad voraussetzt und den hasst du außen nicht.

Herbert

Spindoctor
03-12-2007, 13:18
ok, verstehe... und einen Befehl wie "\pscut" oder so gibts wohl nicht ;)

Schade!

Gibts eine Stelle, an die ich schreiben kann, dass ich so einen Befehl für das nächste Release als großen Gewinn erachten würde?

Spin