When a text string position is specified that screen (or scale) position by
default gets aligned with the top left corner of the strings bounding box. We say
that the top left corner is the anchor point of the text string. The alignment of the
anchor point can be adjusted with a call to Text::SetAlignment($aHorAlign,
$vertAlign)
. The two arguments are given as text strings and the
admissible values for each argument are:
'left'
, 'center'
,
'right'
'bottom'
, 'center'
(or
'middle'
) , 'top'
Even though from an API perspective both bitmap fonts and TTF fonts share the same user API the implementation is vastly different. There are a number of subtle differences in the way built-in bit-map fonts and TrueType fonts are rendered to the screen. This means for example that the alignment of, say the bottom of the text string, is not pixel-perfect between bitmap and TrueType fonts However, JpGraph, abstracts away 99.9% of the differences so it will be, for all practical uses of the library completely transparent to switch between the different font types.
Manually setting the alignment for the anchor point is mostly useful when adding Text object to the graph to get the wanted alignment. You can see an example of how the anchor point changes depending on how the combination of alignments are used in Figure 8.2
It might seem strange to have the method name
"SetAlignment()
" when it really should make more sense to use
the name "SetAnchor()
". We agree. This naming scheme is due to
historical reasons.
The graph legend box also have an anchor point that is specified as the 3:rd and 4:th argument to Legend::SetPos()