Create a graph using tikz.
Download file: TikZImages.pg
DOCUMENT();
loadMacros('PGstandard.pl', 'PGML.pl', 'PGtikz.pl', 'PGcourse.pl');
Preamble
PGtikz.pl is used to generate the graph,
$graph_image = createTikZImage();
$graph_image->tikzLibraries("arrows.meta");
# Randomization
$a = non_zero_random(-6, 6); # horizonatal translation
$b = random(-4, 4); # vertical translation
$graph_image->BEGIN_TIKZ
\tikzset{>={Stealth[scale = 1.5]}}
\filldraw[
draw = LightBlue,
fill = white,
rounded corners = 10pt,
thick,
use as bounding box
] (-11,-11) rectangle (11,11);
\huge
\draw[<->, thick] (-11, 0) -- (11, 0) node[above left,outer sep = 4pt]{\(x\)};
\draw[<->, thick] (0, -11) -- (0, 11) node[below right, outer sep = 4pt]{\(y\)};
\foreach \x in {-10, -8, ..., -2, 2, 4, ..., 10}
\draw[thin] (\x, 5pt) -- (\x, -5pt) node[below]{\(\x\)};
\foreach \y in {-10, -8, ..., -2, 2, 4, ..., 10}
\draw[thin] (5pt, \y) -- (-5pt, \y) node[left]{\(\y\)};
\draw[<->, Blue, thick]
plot[domain = -11:11, samples=50, smooth] (\x, {(\x - $a)^2 + $b});
END_TIKZ
Setup
The createTikZImage function creates an image to be
built using TikZ.
An svg image will be generated by default which will
generally work better than a png image due to being
scalable. In rare cases the svg creation methods do not
give the correct output, and so in those cases a png image
may be generated instead by adding
$graph_image->ext('png').
The $graph_image->tikzLibraries("arrows.meta") will
load the arrows.meta Tikz library.
The variables $a and $b are defined for use
in the TikZ code that follows.
The actual TikZ image is built between
$graph_image->BEGIN_TIKZ and END_TIKZ
The command \tikzset{>={Stealth[scale = 1.5]}} scales
the arrows by a factor of 1.5.
The \filldraw command creates a nice background for the
graph that provides contrast with the problem background color.
The \draw commands that follow draw the x
and y axis and labels.
The \foreach loops \draw ticks and tick
labels on the axes.
Finally, the function is plotted with the \draw plot
command.
BEGIN_PGML
>>[!TODO!]{$graph_image}{400}{ image_options => { tex_size => 600 } }<<
END_PGML
Statement
Insert the TikZ image using the PGML image syntax.
The width in pixels for display in HTML is set in the first option argument (in this case 400).
The tex_size option determines the size of the image
for hard copy and can be set using the image_options. The
tex_size option is the scale factor for hardcopy where 1000
is the full width of either the page or the column. This image will be
60% of the page width.
If the problem times out then often there may be a problem with the TikZ code. Troubleshooting is often needed by running the same code in a latex file and compiling it.
BEGIN_PGML_SOLUTION Solution explanation goes here. END_PGML_SOLUTION ENDDOCUMENT();
Solution
A solution should be provided here.