public class TransformPainter extends Object
TransformPainter class offers a set of static methods to render elements (image, renderable
 character) with a transformation.
 The transformation (rotate, scale etc.) is applied during the drawing: the source element is not updated (for instance the source image is not rotated: this is its rendering on the graphics context which is rotated).
| Modifier and Type | Class and Description | 
|---|---|
| static class  | TransformPainter.FlipSpecify the flip to apply when drawing an image. | 
| Modifier and Type | Method and Description | 
|---|---|
| static void | drawDeformedImage(GraphicsContext gc,
                 Image image,
                 int x,
                 int y,
                 int[] xys)Draws a deformed image at the given anchor top-left point. The deformed image is identified by its four corner points. | 
| static void | drawFlippedImage(GraphicsContext gc,
                Image image,
                int x,
                int y,
                TransformPainter.Flip flip)Draws the image in the graphics context at given anchor top-left position, using the given flip. | 
| static void | drawFlippedImage(GraphicsContext gc,
                Image image,
                int x,
                int y,
                TransformPainter.Flip flip,
                int alpha)Draws the image in the graphics context at given anchor top-left position, using the given flip and opacity
 level. | 
| static void | drawRotatedCharBilinear(GraphicsContext gc,
                       Font font,
                       char c,
                       int x,
                       int y,
                       int rx,
                       int ry,
                       float angle)Draws the character applying the given rotation. | 
| static void | drawRotatedCharBilinear(GraphicsContext gc,
                       Font font,
                       char c,
                       int x,
                       int y,
                       int rx,
                       int ry,
                       float angle,
                       int alpha)Draws the character applying the given rotation and opacicity level. | 
| static void | drawRotatedCharNearestNeighbor(GraphicsContext gc,
                              Font font,
                              char c,
                              int x,
                              int y,
                              int rx,
                              int ry,
                              float angle)Draws the character applying the given rotation. | 
| static void | drawRotatedCharNearestNeighbor(GraphicsContext gc,
                              Font font,
                              char c,
                              int x,
                              int y,
                              int rx,
                              int ry,
                              float angle,
                              int alpha)Draws the character applying the given rotation and opacity level. | 
| static void | drawRotatedImageBilinear(GraphicsContext gc,
                        Image image,
                        int x,
                        int y,
                        int rx,
                        int ry,
                        float angle)Draws the image applying the given rotation. | 
| static void | drawRotatedImageBilinear(GraphicsContext gc,
                        Image image,
                        int x,
                        int y,
                        int rx,
                        int ry,
                        float angle,
                        int alpha)Draws the image applying the given rotation fixing the opacity level. | 
| static void | drawRotatedImageNearestNeighbor(GraphicsContext gc,
                               Image image,
                               int x,
                               int y,
                               int rx,
                               int ry,
                               float angle)Draws the image applying the given rotation. | 
| static void | drawRotatedImageNearestNeighbor(GraphicsContext gc,
                               Image image,
                               int x,
                               int y,
                               int rx,
                               int ry,
                               float angle,
                               int alpha)Draws the image applying the given rotation and opacity level. | 
| static void | drawScaledCharBilinear(GraphicsContext gc,
                      char character,
                      Font font,
                      int x,
                      int y,
                      float factorX,
                      float factorY)Draws the character in the graphics context at given anchor top-left position and using the given scaling factor. | 
| static void | drawScaledImageBilinear(GraphicsContext gc,
                       Image image,
                       int x,
                       int y,
                       float factorX,
                       float factorY)Draws the image in the graphics context at given anchor top-left position and using the given scaling factor. | 
| static void | drawScaledImageBilinear(GraphicsContext gc,
                       Image image,
                       int x,
                       int y,
                       float factorX,
                       float factorY,
                       int alpha)Draws the image in the graphics context at given anchor top-left position and using the given scaling factor and
 opacity level. | 
| static void | drawScaledImageNearestNeighbor(GraphicsContext gc,
                              Image image,
                              int x,
                              int y,
                              float factorX,
                              float factorY)Draws the image in the graphics context at given anchor top-left position and using the given scaling factor. | 
| static void | drawScaledImageNearestNeighbor(GraphicsContext gc,
                              Image image,
                              int x,
                              int y,
                              float factorX,
                              float factorY,
                              int alpha)Draws the image in the graphics context at given anchor top-left position and using the given scaling factor and
 opacity level. | 
| static void | drawScaledRenderableStringBilinear(GraphicsContext gc,
                                  RenderableString string,
                                  int x,
                                  int y,
                                  float factorX,
                                  float factorY)Draws the renderable string in the graphics context at given anchor top-left position and using the given scaling
 factor. | 
| static void | drawScaledStringBilinear(GraphicsContext gc,
                        String string,
                        Font font,
                        int x,
                        int y,
                        float factorX,
                        float factorY)Draws the string in the graphics context at given anchor top-left position and using the given scaling factor. | 
| static void | drawScaledSubstringBilinear(GraphicsContext gc,
                           String string,
                           int offset,
                           int length,
                           Font font,
                           int x,
                           int y,
                           float factorX,
                           float factorY)Draws the substring in the graphics context at given anchor top-left position and using the given scaling factor. | 
public static void drawDeformedImage(GraphicsContext gc, Image image, int x, int y, int[] xys)
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the anchor top-left pointy - the y coordinate of the anchor top-left pointxys - the array of coordinates : x1,y1,x2,y2,x3,y3,x4,y4.IllegalArgumentException - if the @{code xys} length is different than 2*4.public static void drawFlippedImage(GraphicsContext gc, Image image, int x, int y, TransformPainter.Flip flip)
 Equivalent to calling drawFlippedImage(GraphicsContext, Image, int, int, Flip, int) with
 GraphicsContext.OPAQUE as alpha.
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointflip - the flip to apply.public static void drawFlippedImage(GraphicsContext gc, Image image, int x, int y, TransformPainter.Flip flip, int alpha)
 In addition with drawFlippedImage(GraphicsContext, Image, int, int, Flip), this method allows to specify
 the global opacity value to apply during the image rendering.
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointflip - the flip to apply.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE.public static void drawRotatedCharBilinear(GraphicsContext gc, Font font, char c, int x, int y, int rx, int ry, float angle)
bilinear algorithm to render
 the content. This algorithm performs better rendering than nearest neighbor algorithm but it is
 slower to apply.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 Equivalent to calling
 drawRotatedCharBilinear(GraphicsContext, Font, char, int, int, int, int, float, int) with
 GraphicsContext.OPAQUE as alpha.
gc - the graphics context where to render the drawing.font - the font to use.c - the character to draw.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.drawRotatedCharNearestNeighbor(GraphicsContext, Font, char, int, int, int, int, float)public static void drawRotatedCharBilinear(GraphicsContext gc, Font font, char c, int x, int y, int rx, int ry, float angle, int alpha)
bilinear
 algorithm to render the content. This algorithm performs better rendering than nearest neighbor
 algorithm but it is slower to apply.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 In addition with drawRotatedCharBilinear(GraphicsContext, Font, char, int, int, int, int, float), this
 method allows to specify the global opacity value to apply during the image rendering.
gc - the graphics context where to render the drawing.font - the font to use.c - the character to draw.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE.drawRotatedCharNearestNeighbor(GraphicsContext, Font, char, int, int, int, int, float, int)public static void drawRotatedCharNearestNeighbor(GraphicsContext gc, Font font, char c, int x, int y, int rx, int ry, float angle)
nearest neighbor algorithm to
 render the content. This algorithm is faster than bilinear algorithm but its rendering is more
 simple.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 Equivalent to calling
 drawRotatedCharNearestNeighbor(GraphicsContext, Font, char, int, int, int, int, float, int) with
 GraphicsContext.OPAQUE as alpha.
gc - the graphics context where render the drawing.font - the font to use.c - the character to draw.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.drawRotatedCharBilinear(GraphicsContext, Font, char, int, int, int, int, float)public static void drawRotatedCharNearestNeighbor(GraphicsContext gc, Font font, char c, int x, int y, int rx, int ry, float angle, int alpha)
nearest neighbor algorithm to render the content. This algorithm is faster than
 bilinear algorithm but its rendering is more simple.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 In addition with drawRotatedCharNearestNeighbor(GraphicsContext, Font, char, int, int, int, int, float),
 this method allows to specify the global opacity value to apply during the image rendering.
gc - the graphics context where render the drawing.font - the font to use.c - the character to draw.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE.drawRotatedCharBilinear(GraphicsContext, Font, char, int, int, int, int, float, int)public static void drawRotatedImageBilinear(GraphicsContext gc, Image image, int x, int y, int rx, int ry, float angle)
bilinear algorithm to render the
 content. This algorithm performs better rendering than nearest neighbor algorithm but it is slower
 to apply.
 The rotation is specified by the center and the angle. The reference point is the graphical object top-left corner. The rotation point is relative to the current translation of the graphics context where the graphical object will be drawn.
To rotate an image on itself, use the following lines:
 
 int rx = x + image.getWidth() / 2;
 
 int ry = y + image.getHeight() / 2;
 TransformPainter.drawRotatedImageBilinear(gc, image, x, y, rx, ry, 78);
 
To rotate an image around a circle, use the following lines:
 
 for (int i = 0; i < 360; i += 45) {
 
  TransformPainter.drawRotatedImageBilinear(gc, image, rx - diameter / 2, ry - diameter / 2, rx, ry, i);
 }
 
 Equivalent to calling drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float, int)
 with GraphicsContext.OPAQUE as alpha.
gc - the graphics context where to render the drawing.image - the image to draw.x - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.drawRotatedImageNearestNeighbor(GraphicsContext, Image, int, int, int, int, float)public static void drawRotatedImageBilinear(GraphicsContext gc, Image image, int x, int y, int rx, int ry, float angle, int alpha)
bilinear
 algorithm to render the content. This algorithm performs better rendering than nearest neighbor
 algorithm but it is slower to apply.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 In addition with drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float), this
 method allows to specify the global opacity value to apply during the image rendering.
gc - the graphics context where to render the drawing.image - the image to draw.x - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE.drawRotatedImageNearestNeighbor(GraphicsContext, Image, int, int, int, int, float, int)public static void drawRotatedImageNearestNeighbor(GraphicsContext gc, Image image, int x, int y, int rx, int ry, float angle)
nearest neighbor algorithm to
 render the content. This algorithm is faster than bilinear algorithm but its rendering is more
 simple.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 Equivalent to calling
 drawRotatedImageNearestNeighbor(GraphicsContext, Image, int, int, int, int, float, int) with
 GraphicsContext.OPAQUE as alpha.
gc - the graphics context where render the drawing.image - the image to draw.x - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float)public static void drawRotatedImageNearestNeighbor(GraphicsContext gc, Image image, int x, int y, int rx, int ry, float angle, int alpha)
nearest neighbor
 algorithm to render the content. This algorithm is faster than bilinear algorithm but its rendering
 is more simple.
 
 Some rotation samples are described in method comment
 drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float).
 
 In addition with drawRotatedImageNearestNeighbor(GraphicsContext, Image, int, int, int, int, float),
 this method allows to specify the global opacity value to apply during the image rendering.
gc - the graphics context where render the drawing.image - the image to draw.x - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointrx - the rotation center X coordinate.ry - the rotation center Y coordinate.angle - the rotation angle.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE.drawRotatedImageBilinear(GraphicsContext, Image, int, int, int, int, float, int)public static void drawScaledCharBilinear(GraphicsContext gc, char character, Font font, int x, int y, float factorX, float factorY)
bilinear algorithm to render the character.gc - the graphics context where to render the drawing.character - the character to drawfont - the font to use.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.IllegalArgumentException - if a factor is lower than or equal to zero.public static void drawScaledImageBilinear(GraphicsContext gc, Image image, int x, int y, float factorX, float factorY)
bilinear algorithm to render the image. This algorithm performs better
 rendering than nearest neighbor algorithm but it is slower to apply.
 
 Equivalent to calling drawScaledImageBilinear(GraphicsContext, Image, int, int, float, float, int) with
 GraphicsContext.OPAQUE as alpha.
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.IllegalArgumentException - if a factor is lower than or equal to zero.public static void drawScaledImageBilinear(GraphicsContext gc, Image image, int x, int y, float factorX, float factorY, int alpha)
bilinear algorithm to render the image. This algorithm performs
 better rendering than nearest neighbor algorithm but it is slower to apply.
 
 In addition with drawScaledImageBilinear(GraphicsContext, Image, int, int, float, float), this method
 allows to specify the global opacity value to apply during the image rendering.
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE or if a factor is lower than or equal to zero.public static void drawScaledImageNearestNeighbor(GraphicsContext gc, Image image, int x, int y, float factorX, float factorY)
nearest neighbor algorithm to render the image. This algorithm is faster than
 bilinear algorithm but its rendering is more simple.
 
 Equivalent to calling
 drawScaledImageNearestNeighbor(GraphicsContext, Image, int, int, float, float, int) with
 GraphicsContext.OPAQUE as alpha.
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.IllegalArgumentException - if a factor is lower than or equal to zero.public static void drawScaledImageNearestNeighbor(GraphicsContext gc, Image image, int x, int y, float factorX, float factorY, int alpha)
nearest neighbor algorithm to render the image. This algorithm
 is faster than bilinear algorithm but its rendering is more simple.
 
 In addition with drawScaledImageNearestNeighbor(GraphicsContext, Image, int, int, float, float), this
 method allows to specify the global opacity value to apply during the image rendering.
gc - the graphics context where to render the drawing.image - the image to drawx - the x coordinate of the image reference anchor top-left pointy - the y coordinate of the image reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.alpha - the global opacity rendering value.IllegalArgumentException - if the given alpha is not a value between GraphicsContext.TRANSPARENT and
             GraphicsContext.OPAQUE or if a factor is lower than or equal to zero.public static void drawScaledRenderableStringBilinear(GraphicsContext gc, RenderableString string, int x, int y, float factorX, float factorY)
bilinear algorithm to render the renderable string.gc - the graphics context where to render the drawing.string - the renderable string to drawx - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.IllegalArgumentException - if a factor is lower than or equal to zero.public static void drawScaledStringBilinear(GraphicsContext gc, String string, Font font, int x, int y, float factorX, float factorY)
bilinear algorithm to render the string.gc - the graphics context where to render the drawing.string - the string to drawfont - the font to use.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.IllegalArgumentException - if a factor is lower than or equal to zero.public static void drawScaledSubstringBilinear(GraphicsContext gc, String string, int offset, int length, Font font, int x, int y, float factorX, float factorY)
bilinear algorithm to render the string.gc - the graphics context where to render the drawing.string - the string to drawoffset - the index of the first character of the string.length - the number of characters of the string.font - the font to use.x - the x coordinate of the character reference anchor top-left pointy - the y coordinate of the character reference anchor top-left pointfactorX - the scaling X factor.factorY - the scaling Y factor.IllegalArgumentException - if a factor is lower than or equal to zero.StringIndexOutOfBoundsException - if the given offset and length do not specify a valid range within the given string.