Class PGraphicsJava2D
- All Implemented Interfaces:
Cloneable,PConstants
To get access to the Java 2D "Graphics2D" object for the default renderer, use:
Graphics2D g2 = (Graphics2D) g.getNative();This will let you do Graphics2D calls directly, but is not supported in any way shape or form. Which just means "have fun, but don't complain if it breaks."
Advanced debugging notes for Java2D.
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanbooleanFields inherited from class processing.core.PGraphics
A, AB, AG, ambientB, ambientColor, ambientG, ambientR, AR, B, backgroundColor, BEEN_LIT, bezierDetail, colorMode, colorModeA, colorModeX, colorModeY, colorModeZ, curveDetail, curveTightness, DA, DB, DEFAULT_VERTICES, DG, DR, EB, edge, EDGE, EG, ellipseMode, emissiveB, emissiveColor, emissiveG, emissiveR, ER, fill, fillColor, G, HAS_NORMAL, image, imageMode, normalX, normalY, normalZ, NX, NY, NZ, pixelCount, R, rectMode, SA, SB, setAmbient, SG, shapeMode, SHINE, shininess, smooth, SPB, specularB, specularColor, specularG, specularR, SPG, sphereDetailU, sphereDetailV, SPR, SR, stroke, strokeCap, strokeColor, strokeJoin, strokeWeight, SW, textAlign, textAlignY, textFont, textLeading, textMode, textSize, textureImage, textureMode, textureU, textureV, tint, tintColor, TX, TY, TZ, U, V, VERTEX_FIELD_COUNT, VW, VX, VY, VZFields inherited from class processing.core.PImage
ALPHA_MASK, BLUE_MASK, format, GREEN_MASK, height, loaded, parent, pixelDensity, pixelHeight, pixels, pixelWidth, RED_MASK, widthFields inherited from interface processing.core.PConstants
ADD, ALPHA, ALT, AMBIENT, ARC, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BEZIER_VERTEX, BICUBIC, BILINEAR, BLEND, BLUR, BOTTOM, BOX, BREAK, BURN, CENTER, CHATTER, CHORD, CLAMP, CLOSE, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CURVE_VERTEX, CUSTOM, DARKEST, DEG_TO_RAD, DELETE, DIAMETER, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_ASYNC_SAVEFRAME, DISABLE_BUFFER_READING, DISABLE_DEPTH_MASK, DISABLE_DEPTH_SORT, DISABLE_DEPTH_TEST, DISABLE_KEY_REPEAT, DISABLE_NATIVE_FONTS, DISABLE_OPENGL_ERRORS, DISABLE_OPTIMIZED_STROKE, DISABLE_STROKE_PERSPECTIVE, DISABLE_STROKE_PURE, DISABLE_TEXTURE_MIPMAPS, DODGE, DOWN, DXF, ELLIPSE, ENABLE_ASYNC_SAVEFRAME, ENABLE_BUFFER_READING, ENABLE_DEPTH_MASK, ENABLE_DEPTH_SORT, ENABLE_DEPTH_TEST, ENABLE_KEY_REPEAT, ENABLE_NATIVE_FONTS, ENABLE_OPENGL_ERRORS, ENABLE_OPTIMIZED_STROKE, ENABLE_STROKE_PERSPECTIVE, ENABLE_STROKE_PURE, ENABLE_TEXTURE_MIPMAPS, ENTER, EPSILON, ERODE, ESC, EXCLUSION, FX2D, GIF, GRAY, GROUP, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LANDSCAPE, LEFT, LIGHTEST, LINE, LINE_LOOP, LINE_STRIP, LINES, LINUX, MACOS, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MODELVIEW, MOVE, MULTIPLY, NEAREST_NEIGHBOR, NORMAL, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PATH, PDF, PERSPECTIVE, PI, PIE, platformNames, POINT, POINTS, POLYGON, PORTRAIT, POSTERIZE, PROBLEM, PROJECT, PROJECTION, QUAD, QUAD_BEZIER_VERTEX, QUAD_STRIP, QUADRATIC_VERTEX, QUADS, QUARTER_PI, RAD_TO_DEG, RADIUS, RECT, REPEAT, REPLACE, RETURN, RGB, RIGHT, ROUND, SCREEN, SHAPE, SHIFT, SOFT_LIGHT, SPAN, SPHERE, SPOT, SQUARE, SUBTRACT, SVG, TAB, TARGA, TAU, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, UP, VERTEX, WAIT, WHITESPACE, WINDOWS, X, Y, Z -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyMatrix(float n00, float n01, float n02, float n10, float n11, float n12) voidapplyMatrix(float n00, float n01, float n02, float n03, float n10, float n11, float n12, float n13, float n20, float n21, float n22, float n23, float n30, float n31, float n32, float n33) voidvoidUse the beginContour() and endContour() function to create negative shapes within shapes such as the center of the letter "O".voidSets the default properties for a PGraphics object.voidRecord individual lines and triangles by echoing them to another renderer.voidbeginShape(int kind) Using the beginShape() and endShape() functions allow creating more complex forms.voidbezierDetail(int detail) Ignored (not needed) in Java 2D.voidbezierVertex(float x1, float y1, float x2, float y2, float x3, float y3) voidbezierVertex(float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4) Specifies vertex coordinates for Bézier curves.voidbox(float w, float h, float d) voidcopy(int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh) Copies a region of pixels from one image into another.voidvoidcurveDetail(int detail) Ignored (not needed) in Java 2D.voidcurveVertex(float x, float y, float z) voidUse the beginContour() and endContour() function to create negative shapes within shapes such as the center of the letter "O".voidendDraw()Finalizes the rendering of a PGraphics object so that it can be shown on screen.voidendRaw()voidendShape(int mode) The endShape() function is the companion to beginShape() and may only be called after beginShape().intget(int x, int y) Reads the color of any pixel or grabs a section of an image.Copy the current transformation matrix into the specified target.Copy the current transformation matrix into the specified target.Returns the java.awt.Graphics2D object used by this renderer.voidhint(int which) Set various hints and hacks for the renderer.voidline(float x1, float y1, float x2, float y2) Draws a line (a direct path between two points) to the screen.voidLoads the pixel data of the current display window into the pixels[] array.voidmask(int[] alpha) voidMasks part of an image from displaying by loading another image and using it as an alpha channel.voidnoClip()Disables the clipping previously started by the clip() function.voidpoint(float x, float y) Draws a point, a coordinate in space at the dimension of one pixel.voidPops the current transformation matrix off the matrix stack.voidPrints the current matrix to the Console (the text window at the bottom of Processing).voidPushes the current transformation matrix onto the matrix stack.voidquad(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4) A quad is a quadrilateral, a four sided polygon.voidquadraticVertex(float ctrlX, float ctrlY, float endX, float endY) Specifies vertex coordinates for quadratic Bézier curves.voidquadraticVertex(float x2, float y2, float z2, float x4, float y4, float z4) voidReplaces the current matrix with the identity matrix.voidrotate(float angle) Rotates a shape the amount specified by the angle parameter.voidrotate(float angle, float vx, float vy, float vz) AdvancedvoidrotateX(float angle) Rotates a shape around the x-axis the amount specified by the angle parameter.voidrotateY(float angle) Rotates a shape around the y-axis the amount specified by the angle parameter.voidrotateZ(float angle) Rotates a shape around the z-axis the amount specified by the angle parameter.voidscale(float s) Increases or decreases the size of a shape by expanding and contracting vertices.voidscale(float sx, float sy) Advancedvoidscale(float sx, float sy, float sz) floatscreenX(float x, float y) Takes a three-dimensional X, Y, Z position and returns the X value for where it will appear on a (two-dimensional) screen.floatscreenX(float x, float y, float z) floatscreenY(float x, float y) Takes a three-dimensional X, Y, Z position and returns the Y value for where it will appear on a (two-dimensional) screen.floatscreenY(float x, float y, float z) floatscreenZ(float x, float y, float z) Takes a three-dimensional X, Y, Z position and returns the Z value for where it will appear on a (two-dimensional) screen.voidset(int x, int y, int argb) Changes the color of any pixel or writes an image directly into the display window.
The x and y parameters specify the pixel to change and the color parameter specifies the color value.voidSet the current transformation to the contents of the specified source.voidSet the current transformation to the contents of the specified source.voidsetSize(int w, int h) Queues a size change, won't happen until beginDraw().voidshearX(float angle) Shears a shape around the x-axis the amount specified by the angle parameter.voidshearY(float angle) Shears a shape around the y-axis the amount specified by the angle parameter.voidsphere(float r) A sphere is a hollow ball made from tessellated triangles.voidstrokeCap(int cap) Sets the style for rendering line endings.voidstrokeJoin(int join) Sets the style of the joints which connect line segments.voidstrokeWeight(float weight) Sets the width of the stroke used for lines, points, and the border around shapes.floatReturns ascent of the current font at its current size.floatReturns descent of the current font at its current size.voidSets a texture to be applied to vertex points.voidtranslate(float tx, float ty) Specifies an amount to displace objects within the display window.voidtriangle(float x1, float y1, float x2, float y2, float x3, float y3) A triangle is a plane created by connecting three points.voidupdatePixels(int x, int y, int c, int d) Update the pixels[] buffer to the PGraphics image.voidvertex(float[] v) Used by renderer subclasses or PShape to efficiently pass in already formatted vertex information.voidvertex(float x, float y) voidvertex(float x, float y, float z) voidvertex(float x, float y, float u, float v) voidvertex(float x, float y, float z, float u, float v) All shapes are constructed by connecting a series of vertices.Methods inherited from class processing.core.PGraphics
alpha, ambient, ambient, ambient, ambientLight, ambientLight, applyMatrix, applyMatrix, applyMatrix, arc, arc, attrib, attrib, attrib, attribColor, attribNormal, attribPosition, background, background, background, background, background, background, background, beginCamera, beginPGL, beginShape, bezier, bezier, bezierPoint, bezierTangent, blendMode, blue, box, brightness, camera, camera, circle, clear, clip, color, color, color, color, color, color, color, color, color, colorMode, colorMode, colorMode, colorMode, createShape, createShape, createShape, curve, curve, curvePoint, curveTangent, curveTightness, curveVertex, directionalLight, displayable, dispose, edge, ellipse, ellipseMode, emissive, emissive, emissive, endCamera, endPGL, endShape, fill, fill, fill, fill, fill, fill, filter, flush, frustum, getCache, getRaw, getStyle, getStyle, green, haveRaw, hue, image, image, image, imageMode, is2D, is2X, is3D, isGL, lerpColor, lerpColor, lightFalloff, lights, lightSpecular, line, loadShader, loadShader, loadShape, modelX, modelY, modelZ, noFill, noLights, normal, noSmooth, noStroke, noTexture, noTint, ortho, ortho, ortho, perspective, perspective, point, pointLight, pop, popStyle, printCamera, printProjection, push, pushStyle, rect, rect, rect, rectMode, red, removeCache, resetShader, resetShader, saturation, save, setCache, setMatrix, setParent, setPath, setPrimary, shader, shader, shape, shape, shape, shapeMode, shininess, showDepthWarning, showDepthWarningXYZ, showException, showMethodWarning, showMissingWarning, showVariationWarning, showWarning, showWarning, smooth, smooth, specular, specular, specular, sphereDetail, sphereDetail, spotLight, square, stroke, stroke, stroke, stroke, stroke, stroke, style, text, text, text, text, text, text, text, text, text, text, text, textAlign, textAlign, textFont, textFont, textLeading, textMode, textSize, textureMode, textureWrap, textWidth, textWidth, textWidth, tint, tint, tint, tint, tint, tint, translateMethods inherited from class processing.core.PImage
blend, blend, blendColor, checkAlpha, clone, copy, filter, filter, get, get, getImage, getModifiedX1, getModifiedX2, getModifiedY1, getModifiedY2, init, init, isLoaded, isModified, loadTGA, resize, resize, set, setLoaded, setLoaded, setModified, setModified, updatePixels
-
Field Details
-
g2
-
fillGradient
public boolean fillGradient -
fillGradientObject
-
strokeGradient
public boolean strokeGradient -
strokeGradientObject
-
-
Constructor Details
-
PGraphicsJava2D
public PGraphicsJava2D()
-
-
Method Details
-
setSize
public void setSize(int w, int h) Queues a size change, won't happen until beginDraw(). -
createSurface
- Overrides:
createSurfacein classPGraphics
-
getNative
Returns the java.awt.Graphics2D object used by this renderer. -
checkImage
-
beginDraw
public void beginDraw()Description copied from class:PGraphicsSets the default properties for a PGraphics object. It should be called before anything is drawn into the object.Advanced
When creating your own PGraphics, you should call this before drawing anything. -
endDraw
public void endDraw()Description copied from class:PGraphicsFinalizes the rendering of a PGraphics object so that it can be shown on screen.Advanced
When creating your own PGraphics, you should call this when you're finished drawing. -
hint
public void hint(int which) Description copied from class:PGraphicsSet various hints and hacks for the renderer. This is used to handle obscure rendering features that cannot be implemented in a consistent manner across renderers. Many options will often graduate to standard features instead of hints over time.
hint(ENABLE_OPENGL_4X_SMOOTH)- Enable 4x anti-aliasing for P3D. This can help force anti-aliasing if it has not been enabled by the user. On some graphics cards, this can also be set by the graphics driver's control panel, however not all cards make this available. This hint must be called immediately after the size() command because it resets the renderer, obliterating any settings and anything drawn (and like size(), re-running the code that came before it again).
hint(DISABLE_OPENGL_2X_SMOOTH) - In Processing 1.0, Processing always enables 2x smoothing when the P3D renderer is used. This hint disables the default 2x smoothing and returns the smoothing behavior found in earlier releases, where smooth() and noSmooth() could be used to enable and disable smoothing, though the quality was inferior.
hint(ENABLE_NATIVE_FONTS) - Use the native version fonts when they are installed, rather than the bitmapped version from a .vlw file. This is useful with the default (or JAVA2D) renderer setting, as it will improve font rendering speed. This is not enabled by default, because it can be misleading while testing because the type will look great on your machine (because you have the font installed) but lousy on others' machines if the identical font is unavailable. This option can only be set per-sketch, and must be called before any use of textFont().
hint(DISABLE_DEPTH_TEST) - Disable the zbuffer, allowing you to draw on top of everything at will. When depth testing is disabled, items will be drawn to the screen sequentially, like a painting. This hint is most often used to draw in 3D, then draw in 2D on top of it (for instance, to draw GUI controls in 2D on top of a 3D interface). Starting in release 0149, this will also clear the depth buffer. Restore the default with hint(ENABLE_DEPTH_TEST), but note that with the depth buffer cleared, any 3D drawing that happens later in draw() will ignore existing shapes on the screen.
hint(ENABLE_DEPTH_SORT) - Enable primitive z-sorting of triangles and lines in P3D and OPENGL. This can slow performance considerably, and the algorithm is not yet perfect. Restore the default with hint(DISABLE_DEPTH_SORT).
hint(DISABLE_OPENGL_ERROR_REPORT) - Speeds up the P3D renderer setting by not checking for errors while running. Undo with hint(ENABLE_OPENGL_ERROR_REPORT).
hint(ENABLE_BUFFER_READING) - Depth and stencil buffers in P2D/P3D will be down-sampled to make PGL#readPixels work with multisampling. Enabling this introduces some overhead, so if you experience bad performance, disable multisampling with noSmooth() instead. This hint is not intended to be enabled and disabled repeatedly, so call this once in setup() or after creating your PGraphics2D/3D. You can restore the default with hint(DISABLE_BUFFER_READING) if you don't plan to read depth from this PGraphics anymore.
hint(ENABLE_KEY_REPEAT) - Auto-repeating key events are discarded by default (works only in P2D/P3D); use this hint to get all the key events (including auto-repeated). Call hint(DISABLE_KEY_REPEAT) to get events only when the key goes physically up or down.
hint(DISABLE_ASYNC_SAVEFRAME) - P2D/P3D only - save() and saveFrame() will not use separate threads for saving and will block until the image is written to the drive. This was the default behavior in 3.0b7 and before. To enable, call hint(ENABLE_ASYNC_SAVEFRAME). -
beginShape
public void beginShape(int kind) Description copied from class:PGraphicsUsing the beginShape() and endShape() functions allow creating more complex forms. beginShape() begins recording vertices for a shape and endShape() stops recording. The value of the kind parameter tells it which types of shapes to create from the provided vertices. With no mode specified, the shape can be any irregular polygon. The parameters available for beginShape() are POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, and QUAD_STRIP. After calling the beginShape() function, a series of vertex() commands must follow. To stop drawing the shape, call endShape(). The vertex() function with two parameters specifies a position in 2D and the vertex() function with three parameters specifies a position in 3D. Each shape will be outlined with the current stroke color and filled with the fill color.
Transformations such as translate(), rotate(), and scale() do not work within beginShape(). It is also not possible to use other shapes, such as ellipse() or rect() within beginShape().
The P2D and P3D renderers allow stroke() and fill() to be altered on a per-vertex basis, but the default renderer does not. Settings such as strokeWeight(), strokeCap(), and strokeJoin() cannot be changed while inside a beginShape()/endShape() block with any renderer.- Overrides:
beginShapein classPGraphics- Parameters:
kind- Either POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP- See Also:
-
texture
Description copied from class:PGraphicsSets a texture to be applied to vertex points. The texture() function must be called between beginShape() and endShape() and before any calls to vertex(). This function only works with the P2D and P3D renderers. When textures are in use, the fill color is ignored. Instead, use tint() to specify the color of the texture as it is applied to the shape. -
vertex
public void vertex(float x, float y) -
vertex
public void vertex(float x, float y, float z) -
vertex
public void vertex(float[] v) Description copied from class:PGraphicsUsed by renderer subclasses or PShape to efficiently pass in already formatted vertex information. -
vertex
public void vertex(float x, float y, float u, float v) -
vertex
public void vertex(float x, float y, float z, float u, float v) Description copied from class:PGraphicsAll shapes are constructed by connecting a series of vertices. vertex() is used to specify the vertex coordinates for points, lines, triangles, quads, and polygons. It is used exclusively within the beginShape() and endShape() functions.
Drawing a vertex in 3D using the z parameter requires the P3D parameter in combination with size, as shown in the above example.
This function is also used to map a texture onto geometry. The texture() function declares the texture to apply to the geometry and the u and v coordinates set define the mapping of this texture to the form. By default, the coordinates used for u and v are specified in relation to the image's size in pixels, but this relation can be changed with textureMode(). -
beginContour
public void beginContour()Description copied from class:PGraphicsUse the beginContour() and endContour() function to create negative shapes within shapes such as the center of the letter "O". beginContour() begins recording vertices for the shape and endContour() stops recording. The vertices that define a negative shape must "wind" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.
These functions can only be used within a beginShape()/endShape() pair and transformations such as translate(), rotate(), and scale() do not work within a beginContour()/endContour() pair. It is also not possible to use other shapes, such as ellipse() or rect() within.- Overrides:
beginContourin classPGraphics
-
endContour
public void endContour()Description copied from class:PGraphicsUse the beginContour() and endContour() function to create negative shapes within shapes such as the center of the letter "O". beginContour() begins recording vertices for the shape and endContour() stops recording. The vertices that define a negative shape must "wind" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.
These functions can only be used within a beginShape()/endShape() pair and transformations such as translate(), rotate(), and scale() do not work within a beginContour()/endContour() pair. It is also not possible to use other shapes, such as ellipse() or rect() within.- Overrides:
endContourin classPGraphics
-
endShape
public void endShape(int mode) Description copied from class:PGraphicsThe endShape() function is the companion to beginShape() and may only be called after beginShape(). When endshape() is called, all the image data defined since the previous call to beginShape() is written into the image buffer. The constant CLOSE as the value for the MODE parameter to close the shape (to connect the beginning and the end). -
noClip
public void noClip()Description copied from class:PGraphicsDisables the clipping previously started by the clip() function. -
bezierVertex
public void bezierVertex(float x1, float y1, float x2, float y2, float x3, float y3) - Overrides:
bezierVertexin classPGraphics
-
bezierVertex
public void bezierVertex(float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4) Description copied from class:PGraphicsSpecifies vertex coordinates for Bézier curves. Each call to bezierVertex() defines the position of two control points and one anchor point of a Bézier curve, adding a new segment to a line or shape. The first time bezierVertex() is used within a beginShape() call, it must be prefaced with a call to vertex() to set the first anchor point. This function must be used between beginShape() and endShape() and only when there is no MODE parameter specified to beginShape(). Using the 3D version requires rendering with P3D (see the Environment reference for more information).- Overrides:
bezierVertexin classPGraphics- Parameters:
x2- the x-coordinate of the 1st control pointy2- the y-coordinate of the 1st control pointz2- the z-coordinate of the 1st control pointx3- the x-coordinate of the 2nd control pointy3- the y-coordinate of the 2nd control pointz3- the z-coordinate of the 2nd control pointx4- the x-coordinate of the anchor pointy4- the y-coordinate of the anchor pointz4- the z-coordinate of the anchor point- See Also:
-
quadraticVertex
public void quadraticVertex(float ctrlX, float ctrlY, float endX, float endY) Description copied from class:PGraphicsSpecifies vertex coordinates for quadratic Bézier curves. Each call to quadraticVertex() defines the position of one control point and one anchor point of a Bézier curve, adding a new segment to a line or shape. The first time quadraticVertex() is used within a beginShape() call, it must be prefaced with a call to vertex() to set the first anchor point. This function must be used between beginShape() and endShape() and only when there is no MODE parameter specified to beginShape(). Using the 3D version requires rendering with P3D (see the Environment reference for more information).- Overrides:
quadraticVertexin classPGraphics- Parameters:
ctrlX- the x-coordinate of the control pointctrlY- the y-coordinate of the control pointendX- the x-coordinate of the anchor pointendY- the y-coordinate of the anchor point- See Also:
-
quadraticVertex
public void quadraticVertex(float x2, float y2, float z2, float x4, float y4, float z4) - Overrides:
quadraticVertexin classPGraphicsz2- the z-coordinate of the control pointz4- the z-coordinate of the anchor point
-
curveVertex
public void curveVertex(float x, float y, float z) - Overrides:
curveVertexin classPGraphicsz- the z-coordinate of the vertex
-
point
public void point(float x, float y) Description copied from class:PGraphicsDraws a point, a coordinate in space at the dimension of one pixel. The first parameter is the horizontal value for the point, the second value is the vertical value for the point, and the optional third value is the depth value. Drawing this shape in 3D with the z parameter requires the P3D parameter in combination with size() as shown in the above example.
Use stroke() to set the color of a point().
Point appears round with the default strokeCap(ROUND) and square with strokeCap(PROJECT). Points are invisible with strokeCap(SQUARE) (no cap).
Using point() with strokeWeight(1) or smaller may draw nothing to the screen, depending on the graphics settings of the computer. Workarounds include setting the pixel using set() or drawing the point using either circle() or square(). -
line
public void line(float x1, float y1, float x2, float y2) Description copied from class:PGraphicsDraws a line (a direct path between two points) to the screen. The version of line() with four parameters draws the line in 2D. To color a line, use the stroke() function. A line cannot be filled, therefore the fill() function will not affect the color of a line. 2D lines are drawn with a width of one pixel by default, but this can be changed with the strokeWeight() function. The version with six parameters allows the line to be placed anywhere within XYZ space. Drawing this shape in 3D with the z parameter requires the P3D parameter in combination with size() as shown in the above example. -
triangle
public void triangle(float x1, float y1, float x2, float y2, float x3, float y3) Description copied from class:PGraphicsA triangle is a plane created by connecting three points. The first two arguments specify the first point, the middle two arguments specify the second point, and the last two arguments specify the third point. -
quad
public void quad(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4) Description copied from class:PGraphicsA quad is a quadrilateral, a four sided polygon. It is similar to a rectangle, but the angles between its edges are not constrained to ninety degrees. The first pair of parameters (x1,y1) sets the first vertex and the subsequent pairs should proceed clockwise or counter-clockwise around the defined shape.- Overrides:
quadin classPGraphics- Parameters:
x1- x-coordinate of the first cornery1- y-coordinate of the first cornerx2- x-coordinate of the second cornery2- y-coordinate of the second cornerx3- x-coordinate of the third cornery3- y-coordinate of the third cornerx4- x-coordinate of the fourth cornery4- y-coordinate of the fourth corner
-
box
public void box(float w, float h, float d) -
sphere
public void sphere(float r) Description copied from class:PGraphicsA sphere is a hollow ball made from tessellated triangles.Advanced
Implementation notes:
cache all the points of the sphere in a static array top and bottom are just a bunch of triangles that land in the center point
sphere is a series of concentric circles who radii vary along the shape, based on, err... cos or something
[toxi 031031] new sphere code. removed all multiplies with radius, as scale() will take care of that anyway [toxi 031223] updated sphere code (removed modulo) and introduced sphereAt(x,y,z,r) to avoid additional translate()'s on the user/sketch side [davbol 080801] now using separate sphereDetailU/V
-
bezierDetail
public void bezierDetail(int detail) Ignored (not needed) in Java 2D.- Overrides:
bezierDetailin classPGraphics- Parameters:
detail- resolution of the curves- See Also:
-
curveDetail
public void curveDetail(int detail) Ignored (not needed) in Java 2D.- Overrides:
curveDetailin classPGraphics- Parameters:
detail- resolution of the curves- See Also:
-
loadShape
-
textAscent
public float textAscent()Description copied from class:PGraphicsReturns ascent of the current font at its current size. This information is useful for determining the height of the font above the baseline.- Overrides:
textAscentin classPGraphics- See Also:
-
textDescent
public float textDescent()Description copied from class:PGraphicsReturns descent of the current font at its current size. This information is useful for determining the height of the font below the baseline.- Overrides:
textDescentin classPGraphics- See Also:
-
pushMatrix
public void pushMatrix()Description copied from class:PGraphicsPushes the current transformation matrix onto the matrix stack. Understanding pushMatrix() and popMatrix() requires understanding the concept of a matrix stack. The pushMatrix() function saves the current coordinate system to the stack and popMatrix() restores the prior coordinate system. pushMatrix() and popMatrix() are used in conjunction with the other transformation functions and may be embedded to control the scope of the transformations. -
popMatrix
public void popMatrix()Description copied from class:PGraphicsPops the current transformation matrix off the matrix stack. Understanding pushing and popping requires understanding the concept of a matrix stack. The pushMatrix() function saves the current coordinate system to the stack and popMatrix() restores the prior coordinate system. pushMatrix() and popMatrix() are used in conjunction with the other transformation functions and may be embedded to control the scope of the transformations. -
translate
public void translate(float tx, float ty) Description copied from class:PGraphicsSpecifies an amount to displace objects within the display window. The x parameter specifies left/right translation, the y parameter specifies up/down translation, and the z parameter specifies translations toward/away from the screen. Using this function with the z parameter requires using P3D as a parameter in combination with size as shown in the above example. Transformations are cumulative and apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling translate(50, 0) and then translate(20, 0) is the same as translate(70, 0). If translate() is called within draw(), the transformation is reset when the loop begins again. This function can be further controlled by using pushMatrix() and popMatrix(). -
rotate
public void rotate(float angle) Description copied from class:PGraphicsRotates a shape the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to TWO_PI) or converted to radians with the radians() function.
Objects are always rotated around their relative position to the origin and positive numbers rotate objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling rotate(HALF_PI) and then rotate(HALF_PI) is the same as rotate(PI). All transformations are reset when draw() begins again.
Technically, rotate() multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the pushMatrix() and popMatrix(). -
rotateX
public void rotateX(float angle) Description copied from class:PGraphicsRotates a shape around the x-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to PI*2) or converted to radians with the radians() function. Objects are always rotated around their relative position to the origin and positive numbers rotate objects in a counterclockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling rotateX(PI/2) and then rotateX(PI/2) is the same as rotateX(PI). If rotateX() is called within the draw(), the transformation is reset when the loop begins again. This function requires using P3D as a third parameter to size() as shown in the example above. -
rotateY
public void rotateY(float angle) Description copied from class:PGraphicsRotates a shape around the y-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to PI*2) or converted to radians with the radians() function. Objects are always rotated around their relative position to the origin and positive numbers rotate objects in a counterclockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling rotateY(PI/2) and then rotateY(PI/2) is the same as rotateY(PI). If rotateY() is called within the draw(), the transformation is reset when the loop begins again. This function requires using P3D as a third parameter to size() as shown in the examples above. -
rotateZ
public void rotateZ(float angle) Description copied from class:PGraphicsRotates a shape around the z-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to PI*2) or converted to radians with the radians() function. Objects are always rotated around their relative position to the origin and positive numbers rotate objects in a counterclockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling rotateZ(PI/2) and then rotateZ(PI/2) is the same as rotateZ(PI). If rotateZ() is called within the draw(), the transformation is reset when the loop begins again. This function requires using P3D as a third parameter to size() as shown in the examples above. -
rotate
public void rotate(float angle, float vx, float vy, float vz) Description copied from class:PGraphicsAdvanced
Rotate about a vector in space. Same as the glRotatef() function. -
scale
public void scale(float s) Description copied from class:PGraphicsIncreases or decreases the size of a shape by expanding and contracting vertices. Objects always scale from their relative origin to the coordinate system. Scale values are specified as decimal percentages. For example, the function call scale(2.0) increases the dimension of a shape by 200%.
Transformations apply to everything that happens after and subsequent calls to the function multiply the effect. For example, calling scale(2.0) and then scale(1.5) is the same as scale(3.0). If scale() is called within draw(), the transformation is reset when the loop begins again. Using this function with the z parameter requires using P3D as a parameter for size(), as shown in the third example above. This function can be further controlled with pushMatrix() and popMatrix(). -
scale
public void scale(float sx, float sy) Description copied from class:PGraphicsAdvanced
Scale in X and Y. Equivalent to scale(sx, sy, 1). Not recommended for use in 3D, because the z-dimension is just scaled by 1, since there's no way to know what else to scale it by. -
scale
public void scale(float sx, float sy, float sz) -
shearX
public void shearX(float angle) Description copied from class:PGraphicsShears a shape around the x-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to PI*2) or converted to radians with the radians() function. Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling shearX(PI/2) and then shearX(PI/2) is the same as shearX(PI). If shearX() is called within the draw(), the transformation is reset when the loop begins again.
Technically, shearX() multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the pushMatrix() and popMatrix() functions. -
shearY
public void shearY(float angle) Description copied from class:PGraphicsShears a shape around the y-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to PI*2) or converted to radians with the radians() function. Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling shearY(PI/2) and then shearY(PI/2) is the same as shearY(PI). If shearY() is called within the draw(), the transformation is reset when the loop begins again.
Technically, shearY() multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the pushMatrix() and popMatrix() functions. -
resetMatrix
public void resetMatrix()Description copied from class:PGraphicsReplaces the current matrix with the identity matrix. The equivalent function in OpenGL is glLoadIdentity().- Overrides:
resetMatrixin classPGraphics- See Also:
-
applyMatrix
public void applyMatrix(float n00, float n01, float n02, float n10, float n11, float n12) - Overrides:
applyMatrixin classPGraphics- Parameters:
n00- numbers which define the 4x4 matrix to be multipliedn01- numbers which define the 4x4 matrix to be multipliedn02- numbers which define the 4x4 matrix to be multipliedn10- numbers which define the 4x4 matrix to be multipliedn11- numbers which define the 4x4 matrix to be multipliedn12- numbers which define the 4x4 matrix to be multiplied
-
applyMatrix
public void applyMatrix(float n00, float n01, float n02, float n03, float n10, float n11, float n12, float n13, float n20, float n21, float n22, float n23, float n30, float n31, float n32, float n33) - Overrides:
applyMatrixin classPGraphicsn03- numbers which define the 4x4 matrix to be multipliedn13- numbers which define the 4x4 matrix to be multipliedn20- numbers which define the 4x4 matrix to be multipliedn21- numbers which define the 4x4 matrix to be multipliedn22- numbers which define the 4x4 matrix to be multipliedn23- numbers which define the 4x4 matrix to be multipliedn30- numbers which define the 4x4 matrix to be multipliedn31- numbers which define the 4x4 matrix to be multipliedn32- numbers which define the 4x4 matrix to be multipliedn33- numbers which define the 4x4 matrix to be multiplied
-
getMatrix
-
getMatrix
Description copied from class:PGraphicsCopy the current transformation matrix into the specified target. Pass in null to create a new matrix. -
getMatrix
Description copied from class:PGraphicsCopy the current transformation matrix into the specified target. Pass in null to create a new matrix. -
setMatrix
Description copied from class:PGraphicsSet the current transformation to the contents of the specified source. -
setMatrix
Description copied from class:PGraphicsSet the current transformation to the contents of the specified source. -
printMatrix
public void printMatrix()Description copied from class:PGraphicsPrints the current matrix to the Console (the text window at the bottom of Processing).- Overrides:
printMatrixin classPGraphics- See Also:
-
screenX
public float screenX(float x, float y) Description copied from class:PGraphicsTakes a three-dimensional X, Y, Z position and returns the X value for where it will appear on a (two-dimensional) screen. -
screenY
public float screenY(float x, float y) Description copied from class:PGraphicsTakes a three-dimensional X, Y, Z position and returns the Y value for where it will appear on a (two-dimensional) screen. -
screenX
public float screenX(float x, float y, float z) -
screenY
public float screenY(float x, float y, float z) -
screenZ
public float screenZ(float x, float y, float z) Description copied from class:PGraphicsTakes a three-dimensional X, Y, Z position and returns the Z value for where it will appear on a (two-dimensional) screen. -
strokeCap
public void strokeCap(int cap) Description copied from class:PGraphicsSets the style for rendering line endings. These ends are either squared, extended, or rounded, each of which specified with the corresponding parameters: SQUARE, PROJECT, and ROUND. The default cap is ROUND.
To make point() appear square, use strokeCap(PROJECT). Using strokeCap(SQUARE) (no cap) causes points to become invisible. -
strokeJoin
public void strokeJoin(int join) Description copied from class:PGraphicsSets the style of the joints which connect line segments. These joints are either mitered, beveled, or rounded and specified with the corresponding parameters MITER, BEVEL, and ROUND. The default joint is MITER.- Overrides:
strokeJoinin classPGraphics- Parameters:
join- either MITER, BEVEL, ROUND- See Also:
-
strokeWeight
public void strokeWeight(float weight) Description copied from class:PGraphicsSets the width of the stroke used for lines, points, and the border around shapes. All widths are set in units of pixels.
Using point() with strokeWeight(1) or smaller may draw nothing to the screen, depending on the graphics settings of the computer. Workarounds include setting the pixel using set() or drawing the point using either circle() or square().- Overrides:
strokeWeightin classPGraphics- Parameters:
weight- the weight (in pixels) of the stroke- See Also:
-
backgroundImpl
public void backgroundImpl() -
beginRaw
Description copied from class:PGraphicsRecord individual lines and triangles by echoing them to another renderer. -
endRaw
public void endRaw() -
loadPixels
public void loadPixels()Description copied from class:PImageLoads the pixel data of the current display window into the pixels[] array. This function must always be called before reading from or writing to pixels[]. Subsequent changes to the display window will not be reflected in pixels until loadPixels() is called again.Advanced
Call this when you want to mess with the pixels[] array. For subclasses where the pixels[] buffer isn't set by default, this should copy all data into the pixels[] array- Overrides:
loadPixelsin classPImage
-
updatePixels
public void updatePixels(int x, int y, int c, int d) Update the pixels[] buffer to the PGraphics image.Unlike in PImage, where updatePixels() only requests that the update happens, in PGraphicsJava2D, this will happen immediately.
- Overrides:
updatePixelsin classPImage- Parameters:
x- x-coordinate of the upper-left cornery- y-coordinate of the upper-left cornerc- widthd- height
-
get
public int get(int x, int y) Description copied from class:PImageReads the color of any pixel or grabs a section of an image. If no parameters are specified, the entire image is returned. Use the x and y parameters to get the value of one pixel. Get a section of the display window by specifying an additional width and height parameter. When getting an image, the x and y parameters define the coordinates for the upper-left corner of the image, regardless of the current imageMode().
If the pixel requested is outside the image window, black is returned. The numbers returned are scaled according to the current color ranges, but only RGB values are returned by this function. For example, even though you may have drawn a shape with colorMode(HSB), the numbers returned will be in RGB format.
Getting the color of a single pixel with get(x, y) is easy, but not as fast as grabbing the data directly from pixels[]. The equivalent statement to get(x, y) using pixels[] is pixels[y*width+x]. See the reference for pixels[] for more information.Advanced
Returns an ARGB "color" type (a packed 32-bit int) with the color. If the coordinate is outside the image, zero is returned (black, but completely transparent).If the image is in RGB format (i.e. on a PVideo object), the value will get its high bits set, just to avoid cases where they haven't been set already.
If the image is in ALPHA format, this returns a white with its alpha value set.
This function is included primarily for beginners. It is quite slow because it has to check to see if the x, y that was provided is inside the bounds, and then has to check to see what image type it is. If you want things to be more efficient, access the pixels[] array directly.
-
set
public void set(int x, int y, int argb) Description copied from class:PImageChanges the color of any pixel or writes an image directly into the display window.
The x and y parameters specify the pixel to change and the color parameter specifies the color value. The color parameter is affected by the current color mode (the default is RGB values from 0 to 255). When setting an image, the x and y parameters define the coordinates for the upper-left corner of the image, regardless of the current imageMode().
Setting the color of a single pixel with set(x, y) is easy, but not as fast as putting the data directly into pixels[]. The equivalent statement to set(x, y, #000000) using pixels[] is pixels[y*width+x] = #000000. See the reference for pixels[] for more information. -
mask
public void mask(int[] alpha) -
mask
Description copied from class:PImageMasks part of an image from displaying by loading another image and using it as an alpha channel. This mask image should only contain grayscale data, but only the blue color channel is used. The mask image needs to be the same size as the image to which it is applied.
In addition to using a mask image, an integer array containing the alpha channel data can be specified directly. This method is useful for creating dynamically generated alpha masks. This array must be of the same length as the target image's pixels array and should contain only grayscale data of values between 0-255.Advanced
Set alpha channel for an image. Black colors in the source image will make the destination image completely transparent, and white will make things fully opaque. Gray values will be in-between steps.Strictly speaking the "blue" value from the source image is used as the alpha color. For a fully grayscale image, this is correct, but for a color image it's not 100% accurate. For a more accurate conversion, first use filter(GRAY) which will make the image into a "correct" grayscale by performing a proper luminance-based conversion.
-
copy
public void copy(int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh) Description copied from class:PImageCopies a region of pixels from one image into another. If the source and destination regions aren't the same size, it will automatically resize source pixels to fit the specified target region. No alpha information is used in the process, however if the source image has an alpha channel set, it will be copied as well.
As of release 0149, this function ignores imageMode().- Overrides:
copyin classPImage- Parameters:
sx- X coordinate of the source's upper left cornersy- Y coordinate of the source's upper left cornersw- source image widthsh- source image heightdx- X coordinate of the destination's upper left cornerdy- Y coordinate of the destination's upper left cornerdw- destination image widthdh- destination image height- See Also:
-
copy
-