An arrow is stored in the go_arrow
structure. It has the GOT_ARROW
type
and GOST_ARROW
subtype.
It is a transformation-resistant decoration, too. It should be positioned
on a curve (it has a curve hanger and a parameter property)
and it adjusts its direction according to the curve's tangent in the
snap position. Its appearance can be adjusted by changing the properties.
Each arrow has four important points - the front point (where the hanger is located), two side points and the back point. By setting up the “arrow-alignment” property, you can specify how the arrow's rotation should be computed. We can align the arrow to the derivation in the front point or force the back point to be in the intersection of the curve and the side points' center line. The second possiblity is useful especially for a very rounded curve. The final rotation can be adjusted with “rotation”.
The front shape of the arrow is controlled by the “arrow-angle” property (half of the angle between the front point and side points), “arrow-length” (distance between that points),“arrow-front” (shape type) and “front-curvature”. The property “back-distance” determines the angle between the back point and side points and the “arrow-back” property determines the back shape of the arrow.