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
Modifier and TypeFieldDescriptionboolean
boolean
Fields 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, VZ
Fields inherited from class processing.core.PImage
ALPHA_MASK, BLUE_MASK, format, GREEN_MASK, height, loaded, parent, pixelDensity, pixelHeight, pixels, pixelWidth, RED_MASK, width
Fields inherited from interface processing.core.PConstants
ADD, ALPHA, ALT, AMBIENT, ARC, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BEZIER_VERTEX, 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, 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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
applyMatrix
(float n00, float n01, float n02, float n10, float n11, float n12) 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) void
void
Use the beginContour() and endContour() function to create negative shapes within shapes such as the center of the letter "O".void
Sets the default properties for a PGraphics object.void
Record individual lines and triangles by echoing them to another renderer.void
beginShape
(int kind) Using the beginShape() and endShape() functions allow creating more complex forms.void
bezierDetail
(int detail) Ignored (not needed) in Java 2D.void
bezierVertex
(float x1, float y1, float x2, float y2, float x3, float y3) void
bezierVertex
(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.void
box
(float w, float h, float d) void
copy
(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.void
void
curveDetail
(int detail) Ignored (not needed) in Java 2D.void
curveVertex
(float x, float y, float z) void
Use the beginContour() and endContour() function to create negative shapes within shapes such as the center of the letter "O".void
endDraw()
Finalizes the rendering of a PGraphics object so that it can be shown on screen.void
endRaw()
void
endShape
(int mode) The endShape() function is the companion to beginShape() and may only be called after beginShape().int
get
(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.void
hint
(int which) Set various hints and hacks for the renderer.void
line
(float x1, float y1, float x2, float y2) Draws a line (a direct path between two points) to the screen.void
Loads the pixel data of the current display window into the pixels[] array.void
mask
(int[] alpha) void
Masks part of an image from displaying by loading another image and using it as an alpha channel.void
noClip()
Disables the clipping previously started by the clip() function.void
point
(float x, float y) Draws a point, a coordinate in space at the dimension of one pixel.void
Pops the current transformation matrix off the matrix stack.void
Prints the current matrix to the Console (the text window at the bottom of Processing).void
Pushes the current transformation matrix onto the matrix stack.void
quad
(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.void
quadraticVertex
(float ctrlX, float ctrlY, float endX, float endY) Specifies vertex coordinates for quadratic Bézier curves.void
quadraticVertex
(float x2, float y2, float z2, float x4, float y4, float z4) void
Replaces the current matrix with the identity matrix.void
rotate
(float angle) Rotates a shape the amount specified by the angle parameter.void
rotate
(float angle, float vx, float vy, float vz) Advancedvoid
rotateX
(float angle) Rotates a shape around the x-axis the amount specified by the angle parameter.void
rotateY
(float angle) Rotates a shape around the y-axis the amount specified by the angle parameter.void
rotateZ
(float angle) Rotates a shape around the z-axis the amount specified by the angle parameter.void
scale
(float s) Increases or decreases the size of a shape by expanding and contracting vertices.void
scale
(float sx, float sy) Advancedvoid
scale
(float sx, float sy, float sz) float
screenX
(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.float
screenX
(float x, float y, float z) float
screenY
(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.float
screenY
(float x, float y, float z) float
screenZ
(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.void
set
(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.void
Set the current transformation to the contents of the specified source.void
Set the current transformation to the contents of the specified source.void
setSize
(int w, int h) Queues a size change, won't happen until beginDraw().void
shearX
(float angle) Shears a shape around the x-axis the amount specified by the angle parameter.void
shearY
(float angle) Shears a shape around the y-axis the amount specified by the angle parameter.void
sphere
(float r) A sphere is a hollow ball made from tessellated triangles.void
strokeCap
(int cap) Sets the style for rendering line endings.void
strokeJoin
(int join) Sets the style of the joints which connect line segments.void
strokeWeight
(float weight) Sets the width of the stroke used for lines, points, and the border around shapes.float
Returns ascent of the current font at its current size.float
Returns descent of the current font at its current size.void
Sets a texture to be applied to vertex points.void
translate
(float tx, float ty) Specifies an amount to displace objects within the display window.void
triangle
(float x1, float y1, float x2, float y2, float x3, float y3) A triangle is a plane created by connecting three points.void
updatePixels
(int x, int y, int c, int d) Update the pixels[] buffer to the PGraphics image.void
vertex
(float[] v) Used by renderer subclasses or PShape to efficiently pass in already formatted vertex information.void
vertex
(float x, float y) void
vertex
(float x, float y, float z) void
vertex
(float x, float y, float u, float v) void
vertex
(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, translate
Methods 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, 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:
createSurface
in classPGraphics
-
getNative
Returns the java.awt.Graphics2D object used by this renderer. -
checkImage
-
beginDraw
public void beginDraw()Description copied from class:PGraphics
Sets 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:PGraphics
Finalizes 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:PGraphics
Set 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:PGraphics
Using 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:
beginShape
in classPGraphics
- Parameters:
kind
- Either POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP- See Also:
-
texture
Description copied from class:PGraphics
Sets 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:PGraphics
Used 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:PGraphics
All 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:PGraphics
Use 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:
beginContour
in classPGraphics
-
endContour
public void endContour()Description copied from class:PGraphics
Use 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:
endContour
in classPGraphics
-
endShape
public void endShape(int mode) Description copied from class:PGraphics
The 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:PGraphics
Disables 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:
bezierVertex
in 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:PGraphics
Specifies 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:
bezierVertex
in 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:PGraphics
Specifies 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:
quadraticVertex
in 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:
quadraticVertex
in classPGraphics
z2
- 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:
curveVertex
in classPGraphics
z
- the z-coordinate of the vertex
-
point
public void point(float x, float y) Description copied from class:PGraphics
Draws 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:PGraphics
Draws 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:PGraphics
A 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:PGraphics
A 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:
quad
in 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:PGraphics
A 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:
bezierDetail
in classPGraphics
- Parameters:
detail
- resolution of the curves- See Also:
-
curveDetail
public void curveDetail(int detail) Ignored (not needed) in Java 2D.- Overrides:
curveDetail
in classPGraphics
- Parameters:
detail
- resolution of the curves- See Also:
-
loadShape
-
textAscent
public float textAscent()Description copied from class:PGraphics
Returns ascent of the current font at its current size. This information is useful for determining the height of the font above the baseline.- Overrides:
textAscent
in classPGraphics
- See Also:
-
textDescent
public float textDescent()Description copied from class:PGraphics
Returns descent of the current font at its current size. This information is useful for determining the height of the font below the baseline.- Overrides:
textDescent
in classPGraphics
- See Also:
-
pushMatrix
public void pushMatrix()Description copied from class:PGraphics
Pushes 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:PGraphics
Pops 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:PGraphics
Specifies 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:PGraphics
Rotates 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:PGraphics
Rotates 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:PGraphics
Rotates 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:PGraphics
Rotates 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:PGraphics
Advanced
Rotate about a vector in space. Same as the glRotatef() function. -
scale
public void scale(float s) Description copied from class:PGraphics
Increases 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:PGraphics
Advanced
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:PGraphics
Shears 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:PGraphics
Shears 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:PGraphics
Replaces the current matrix with the identity matrix. The equivalent function in OpenGL is glLoadIdentity().- Overrides:
resetMatrix
in classPGraphics
- See Also:
-
applyMatrix
public void applyMatrix(float n00, float n01, float n02, float n10, float n11, float n12) - Overrides:
applyMatrix
in 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:
applyMatrix
in classPGraphics
n03
- 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:PGraphics
Copy the current transformation matrix into the specified target. Pass in null to create a new matrix. -
getMatrix
Description copied from class:PGraphics
Copy the current transformation matrix into the specified target. Pass in null to create a new matrix. -
setMatrix
Description copied from class:PGraphics
Set the current transformation to the contents of the specified source. -
setMatrix
Description copied from class:PGraphics
Set the current transformation to the contents of the specified source. -
printMatrix
public void printMatrix()Description copied from class:PGraphics
Prints the current matrix to the Console (the text window at the bottom of Processing).- Overrides:
printMatrix
in classPGraphics
- See Also:
-
screenX
public float screenX(float x, float y) Description copied from class:PGraphics
Takes 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:PGraphics
Takes 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:PGraphics
Takes 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:PGraphics
Sets 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:PGraphics
Sets 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:
strokeJoin
in classPGraphics
- Parameters:
join
- either MITER, BEVEL, ROUND- See Also:
-
strokeWeight
public void strokeWeight(float weight) Description copied from class:PGraphics
Sets 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:
strokeWeight
in classPGraphics
- Parameters:
weight
- the weight (in pixels) of the stroke- See Also:
-
backgroundImpl
public void backgroundImpl() -
beginRaw
Description copied from class:PGraphics
Record individual lines and triangles by echoing them to another renderer. -
endRaw
public void endRaw() -
loadPixels
public void loadPixels()Description copied from class:PImage
Loads 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:
loadPixels
in 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:
updatePixels
in 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:PImage
Reads 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:PImage
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. 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:PImage
Masks 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:PImage
Copies 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:
copy
in 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
-