Node: Affine Transformations for Polygons, Next: , Previous: Querying Polygons, Up: Polygon Reference



Affine Transformations

Transform rotate (const real x, [const real y = 0, [const real z = 0]]) Virtual function
Transform rotate (const Point& p0, const Point& p1, [const real angle = 180]) Virtual function
Transform rotate (const Path& p, [const real angle = 180]) Virtual function
Transform scale (real x, [real y = 1, [real z = 1]]) Virtual function
Transform shear (real xy, [real xz = 0, [real yx = 0, [real yz = 0, [real zx = 0, [real zy = 0]]]]]) Virtual function
Transform shift (real x, [real y = 0, [real z = 0]]) Virtual function
Transform shift (const Point& p) Virtual function
void shift_times (real x, [real y = 1, [real z = 1]]) Virtual function
void shift_times (const Point& p) Virtual function
The affine transformation functions for Polygon differ from the Path versions only in that center is transformed as well. See Path Reference; Affine Transformations.

Please note, that the classes currently derived from Polygon, namely Reg_Polygon and Rectangle, currently inherit these functions from Polygon. The problem with this is, that they have data members, which are not recalculated when a Reg_Polygon or Rectangle is transformed. I plan to do something about this soon! It will also be necessary to add the function Reg_Polygon::is_reg_polygonal(), in order to test whether operations on a Reg_Polygon have caused it to become irregular and/or non-polygonal. Similarly, the function Rectangle::is_rectangular() must be added, to test whether operations on a Rectangle has caused it to become non-rectangular. See Regular Polygon Reference; Data Members, and Rectangle Reference; Data Members.