I apologize if this question is overly broad, but I'm trying to piece together what I need and I'm hoping the discussion will help foment ideas to help nail down how to go about this.
I'm trying to implement something like a schematic capture system - so I know I need a translation between the world and viewport coordinates and I need a transform matrix to do pan/zoom - the way I had done it before (by scaling up the bitmap on the canvas) wasn't good.
So I need to take one of 5 graphics primitives (polygon, rectangle, circle, arc, and text) that is composed of a set of points, compose a class that holds a ragged array of these types that describes what is on the schematic page with methods to set and get collections of items based on if they're within the viewport or not, and then redraw the viewport with all the segments that are contained within the viewport (using something like a Cohen-Southerland algorithm for the polygons and rectangles, and something else to determine clipping for the other items).
This will allow me to pan/zoom arbitrarily and will prevent scaling issues. I also have to be able to resize the viewport when the user resizes the form, rather than scaling the bitmap that's within it (otherwise that'd be goofy behavior).
So I'm starting to work on this - does anyone have thoughts or input? Am I on the right track, or am I crackers?
Thanks all!