绘制任意大小和任意位置的框

绘制任意大小和任意位置的框

如何在当前页面上绘制任意大小、任意位置的矩形?

    \PassOptionsToPackage{dvipsnames}{xcolor} 
    \documentclass[landscape]{article}
    \usepackage{tikz,graphicx}
    \usepackage{pgf}
    \usepgflibrary{decorations.shapes}
    \usetikzlibrary{shapes.geometric, decorations.shapes,decorations.markings, shapes, fit, arrows, positioning, trees, mindmap, calc}
    \begin{document}
    \begin{tikzpicture}[remember picture, overlay]

    \draw [line width=1mm,opacity=.25] (current page.center) rectangle (3cm);

    \end{tikzpicture}
    \end{document}

答案1

您的问题有点难以理解,所以我只能猜测一下。下面是一个例子,其中绘制了多个圆圈和方框,相对于页面的实际大小,就像您现在所见的那样:

\PassOptionsToPackage{dvipsnames}{xcolor} 
\documentclass[landscape]{article}
\usepackage{tikz,graphicx}
\usepackage{pgf}
\usepgflibrary{decorations.shapes}
\usetikzlibrary{shapes.geometric, decorations.shapes,decorations.markings, shapes, fit, arrows, positioning, trees, mindmap, calc}
\begin{document}
\begin{tikzpicture}[remember picture, overlay]

\draw [line width=1mm,opacity=.25] (current page.center) circle (3cm);

\draw [line width=1mm,opacity=.25] ($(current page.center)+(3,0)$) circle (3cm);

\draw [line width=1mm,opacity=.5] ($(current page.center)+(5,1)$) rectangle ($(current page.center)+(7,3)$);

\end{tikzpicture}
\end{document}

该示例使用 TikZ 坐标计算来使用相对于页面中心的定位。这是您想要的吗?如果不是,请澄清。由于您使用的是“记住图片”,所以不要忘记编译两次!

答案2

使用 PSTricks。

椭圆和矩形:

在此处输入图片描述

\documentclass{article}
\usepackage{pstricks}
\usepackage[a4paper,margin=3cm]{geometry}
\pagestyle{empty}
\SpecialCoor

\makeatletter
\psset
{
    xunit=\dimexpr\textwidth/10,
    yunit=\dimexpr\textheight/10,
    linewidth=2pt,
}
\begin{document}
\noindent
\begin{pspicture}[showgrid=top](10,10)
\psLoop{20}
{
    \psframe[linecolor=red](!rand 801 mod 100 div rand 801 mod 100 div)(!rand 801 mod 100 div 2 add rand 801 mod 100 div 2 add)
    \psellipse[linecolor=orange](!rand 601 mod 100 div 2 add rand 601 mod 100 div 2 add)(!rand 1001 mod 500 div rand 1001 mod 500 div)
}
\end{pspicture}
\end{document}

圆形和矩形:

在此处输入图片描述

% A4 paper size 21.0cm × 29.7cm
\documentclass[pstricks,border=2cm]{standalone}
\SpecialCoor
\makeatletter
\psset
{
    linewidth=2pt,
}
\begin{document}
\noindent
\begin{pspicture}[showgrid=top](17.0,25.7)
\psLoop{10}
{
    \psframe[linecolor=red](!rand 1501 mod 100 div rand 2371 mod 100 div)(!rand 1501 mod 100 div 2 add rand 2371 mod 100 div 2 add)
    \pscircle[linecolor=orange](!2 rand 1301 mod 100 div add 2 rand 2171 mod 100 div add){!rand 1001 mod 500 div}
}
\end{pspicture}
\end{document}

关于rand

让我们考虑rand 501 mod 100 div产生一个介于 0.00 和 5.00 之间的实数。

在此处输入图片描述

相关内容