如何在当前页面上绘制任意大小、任意位置的矩形?
\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 之间的实数。