这篇文章是 如何精确地裁剪出诺曼窗的形状
考虑将诺曼窗图像嵌入到其中的代码pspicture
:
\documentclass{book}
\usepackage{tikz,pstricks,xcolor,graphicx}
% Compile with Xelatex
\newsavebox\IBox
\savebox\IBox{\includegraphics[width=12em,height=15em]{example-image}}
\begin{document}
\thispagestyle{empty}
\begin{pspicture}(-4,-4)(4,8)%
\psframe[fillcolor=red,fillstyle=solid](-4,-4)(4,8)
\rput(0,2.5){\begin{tikzpicture}
\clip (0,0) -- (\wd\IBox,0) -- (\wd\IBox, \ht\IBox-0.5*\wd\IBox)
arc[start angle=0, end angle=180, radius={0.5\wd\IBox}] -- cycle;
\node[inner sep=0pt, above right] at (0,0) {\usebox\IBox};
\end{tikzpicture}}
\end{pspicture}%
\end{document}
产生图像
问题:使用 编译代码Xelatex
,我怎样才能将 Norman Window 着色为蓝色?
谢谢。
答案1
\documentclass[border=12pt]{standalone}
\usepackage{pstricks}
\begin{document}
%\psset{unit=2}
\begin{pspicture}[showgrid=true](-3,-3)(9,9)
\psframe*[linecolor=blue](-3,-3)(9,9)
\psclip{%
\pscustom[linestyle=none,dimen=middle]{%
\psline(6,0)(6,3)
\psarc(3,3){3}{0}{180}
\psline(0,0)
}}
\psframe*[linecolor=red](-3,-3)(9,9)
\endpsclip
\end{pspicture}
\end{document}
您可以使用简单的而不用剪辑\pscustom
。
答案2
自然步骤:
- 将图像放在底层
- 将窗框放在顶部
最重要的概念是在窗口框架中。透明区域是由于奇偶规则。
删除pspicture*
画布外的图像部分。
\documentclass[pstricks,border=1cm]{standalone}
\usepackage{graphicx}
\newbox\IBox
\savebox\IBox{\includegraphics[scale=1]{example-image-a}}
\begin{document}
\begin{pspicture*}[showgrid=t](-2,-2)(2,4)
\rput(0,0){\usebox\IBox}
\end{pspicture*}
\begin{pspicture*}[showgrid=t](-2,-2)(2,4)
\pscustom[dimen=m,linejoin=2,fillstyle=solid,fillcolor=red]{%
\psline(2,4)(2,-2)(-2,-2)(-2,4)\closepath% clockwise
\psarc[liftpen=2](0,2){1}{0}{180}\psline(-1,2)(-1,-1)(1,-1)(1,2)\closepath% counter-clockwise
}
\end{pspicture*}
\begin{pspicture*}[showgrid=t](-2,-2)(2,4)
\rput(0,0){\usebox\IBox}
\pscustom[dimen=m,linejoin=2,fillstyle=solid,fillcolor=red]{%
\psline(2,4)(2,-2)(-2,-2)(-2,4)\closepath% clockwise
\psarc[liftpen=2](0,2){1}{0}{180}\psline(-1,2)(-1,-1)(1,-1)(1,2)\closepath% counter-clockwise
}
\end{pspicture*}
\end{document}
注意:最后一个pspicture*
可能是您要使用的输出。其他的都是故意添加的,只是为了创建动画。因此您需要在作品中删除前pspicture*
两个。showgrid=t