Difference between revisions of "TikZImages"
Jump to navigation
Jump to search
(The example is broken without the definition of $a and $b) |
|||
Line 48: | Line 48: | ||
$graph_image = createTikZImage(); |
$graph_image = createTikZImage(); |
||
$graph_image->tikzLibraries("arrows.meta"); |
$graph_image->tikzLibraries("arrows.meta"); |
||
+ | |||
+ | # Randomization |
||
+ | $a = non_zero_random(-6,6); # horizonatal translation |
||
+ | $b = random(-4,4); # vertical translation |
||
$graph_image->BEGIN_TIKZ |
$graph_image->BEGIN_TIKZ |
||
Line 68: | Line 72: | ||
<li>In certain 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 <tt>$graph_image->ext('png');</tt>.</li> |
<li>In certain 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 <tt>$graph_image->ext('png');</tt>.</li> |
||
<li>The <tt>$graph_image->tikzLibraries("arrows.meta");</tt> will load the <tt>arrows.meta</tt> Tikz library.</li> |
<li>The <tt>$graph_image->tikzLibraries("arrows.meta");</tt> will load the <tt>arrows.meta</tt> Tikz library.</li> |
||
+ | <li>pg variables <tt>$a</tt> and <tt>$b</tt> are defined for use in the TikZ code that follows. If the TikZ code references non-existent pg variables the image creation fails silently.</li> |
||
<li>The actual tikz image is built between <tt>$graph_image->BEGIN_TIKZ</tt> and <tt>END_TIKZ</tt> </li> |
<li>The actual tikz image is built between <tt>$graph_image->BEGIN_TIKZ</tt> and <tt>END_TIKZ</tt> </li> |
||
</p> |
</p> |
Revision as of 16:56, 17 August 2021
Graphic Images, TikZImages
This example shows how to create an image/plot using Tikz.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "PGML.pl", "PGtikz.pl" ); TEXT(beginproblem()); |
Initialization: It is important to include the PGtikz.pl macro. |
$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 \draw[<->,thick] (-11,0) -- (11,0) node[above left,outer sep=2pt]{\(x\)}; \draw[<->,thick] (0,-11) -- (0,11) node[below right,outer sep=2pt]{\(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[<->,red] plot[domain={-3.2+$a}:{3.2+$a}] (\x,{pow(\x-$a,2)+$b}); END_TIKZ |
Setup:
|
BEGIN_PGML [@ image($graph_image, width => 300, tex_size => 1000) @]* END_PGML |
Main Text: This is how to insert the tikz image. Note the width and tex_size parameters can change the size of the image on the web and as hardcopy. Note that you may want to call $image = image($graph_image, width => 300, tex_size => 1000) above and use [@ $image @]* here while developing the problem. If the image call occurs inside the BEGIN_PGML/END_PGML section, then you will not get the warnings from failed image generation. You will instead get no image, and no reason as to why. |
ENDDOCUMENT(); |
This doesn't have a question, so we aren't checking an answer. |