On 06/26/2017 10:21 AM, James Richters wrote:
Is there a way to re-scale a drawing with agg_2D?

I think so, scaling is one of the transformations that agg supports well. The way I would go about this would be to study how agg manages the parsing, storage and display of svg drawings, which are basically collections of drawing commands, just like yours. Compile, run and analyze the code of svg examples, in particular svg_test demo (the one with the lion head).

I found a scale feature in aggpas but it only seems to scale items drawn after the command is issued.

Scaling is done through matrix multiplication but you need to have all your drawing commands stored in a similar way agg does it for svg, so that they can be redrawn. This is a more flexible approach than reiterating over hardcoded drawing commands. The cost is the increased complexity.

I'm wondering if there is a way to send aggpas all my lines and arcs, then give it a scale and offset, display it that way, then a different scale and offset, then redisplay it that way,

I think doing this in a way similar to svg routines is one way to go and may have its limitations. While significantly more complicated, you also get as a byproduct the capability of saving your screen (think screenshots, etc.) in standard svg format that can be persisted beyond your application lifecycle.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to