我刚刚开始学习如何使用 TikZ 包绘制图形。我仍处于起步阶段。如果有人能帮助我完成以下工作,我将不胜感激:
我写了以下代码(见下文),我想绘制一个10x15
矩形,然后从每个角切出一个正方形(从每个角切出的正方形相同)。我想阴凉处每个正方形切割(我知道有一个名为的命令filldraw
,但我不知道如何使用它来实现我想要的),然后我想在图表上显示矩形的尺寸(长度为15
,宽度为10
)。我还想在图表上显示正方形切割的长度为“ x
”。我之所以要这样做,是因为我想将图表包含在我打算在下周复习期间分配给学生的以下问题中:
问题描述:
我们计划将一10x15
英寸厚的锡片的每个角切出一个正方形,然后将侧面折叠起来,做成一个盒子(没有顶部)。
我们应该从每个角切掉多少才能体积结果框是尽可能大?
提示:设“ x
”为从每个角切出的正方形的长度
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (-6,0) -- (6,0);
\draw (6,0) -- (6,-6);
\draw (6,-6) -- (-6,-6);
\draw (-6,0) -- (-6,-6);
\draw (-6,-1.3) -- (6,-1.3);
\draw (6,-4.7) -- (-6,-4.7);
\draw (4.7,0) -- (4.7,-6);
\draw (-4.7,0) -- (-4.7,-6);
\end{tikzpicture}
\end{document}
答案1
一种可能性是:
代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x=.5cm,y=0.5cm,>=latex]
\def\RWd{15}
\def\RHt{10}
\def\CutSide{30pt}
\draw
(0,0) rectangle (\RWd,\RHt);
\path[draw,fill=cyan]
(0,0) rectangle ++(\CutSide,\CutSide)
(\RWd,0) rectangle ++(-\CutSide,\CutSide)
(0,\RHt) rectangle ++(\CutSide,-\CutSide)
(\RWd,\RHt) rectangle ++(-\CutSide,-\CutSide);
\begin{scope}[|<->|,help lines,text=black]
\draw
([yshift=-13pt]0,0) -- node[fill=white] {$15$} ([yshift=-13pt]\RWd,0);
\draw
([xshift=-13pt]0,0) -- node[fill=white] {$10$} ([xshift=-13pt]0,\RHt);
\draw
([yshift=13pt]0,\RHt) -- node[fill=white] {$x$} ++(\CutSide,0);
\end{scope}
\end{tikzpicture}
\end{document}
分别使用 、 控制矩形的高度和宽度\RHt
,\RWd
使用 控制切割正方形的边长\CutSide
。
答案2
仅用于使用 PSTricks 进行打字练习。
选项1
\documentclass[pstricks,border=12pt,12pt,dvipsnames]{standalone}
\usepackage{pgfmath}
\usepackage{pst-node}
\psset{unit=5mm,dimen=m,shortput=nab,arrows=|*-|*}
\begin{document}
\begin{pspicture}[showgrid=false](-2,-2)(15,12)
\psframe(15,10)
\pcline[offset=-1](0,0)(15,0)\ncput*{$15$}
\pcline[offset=-1](0,10)(0,0)\ncput*{$10$}
\pcline[offset=1](0,10)(2,10)\ncput*{$x$}
\foreach \Point/\Angle in {{0,0}/0,{0,10}/-90,{15,10}/-180,{15,0}/-270}{%
\rput{\Angle}(\Point){\psframe[fillstyle=solid,fillcolor=Gray!50](2,2)}}
\end{pspicture}
\end{document}
选项 2
\documentclass[pstricks,border=0pt,12pt,dvipsnames]{standalone}
\usepackage{pgfmath}
\usepackage{pst-node}
\psset{unit=5mm,dimen=m,shortput=nab,arrows=|*-|*,arcangle=-30,linejoin=2}
\begin{document}
\begin{pspicture}[showgrid=false](-2,-2)(16,11)
\psframe(15,10)
\pcline[offset=-1](0,0)(15,0)\ncput*{$15$}
\pcline[offset=-1](0,10)(0,0)\ncput*{$10$}
\psset{arrows=-}
\foreach \Point/\Angle in {{0,0}/0,{0,10}/-90,{15,10}/-180,{15,0}/-270}{%
\rput{\Angle}(\Point){%
\psframe[fillstyle=solid,fillcolor=Gray!50](3,3)%
\pcarc[linestyle=dashed](3,0)(3,3)_{\rput{*0}{$x$}}%
\pcarc[linestyle=dashed](3,3)(0,3)_{\rput{*0}{$x$}}%
}}
\end{pspicture}
\end{document}