- Processing
- p5.js
- Processing.py
- Processing for Android

- Processing Foundation

This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, please let us know. If you prefer a more technical reference, visit the Processing Core Javadoc and Libraries Javadoc.

Name | ### createShape()
Examples |
    PShape square;  // The PShape object

    void setup() {
      size(100, 100);
      // Creating the PShape as a square. The
      // numeric arguments are similar to rect().
      square = createShape(RECT, 0, 0, 50, 50);
      square.setFill(color(0, 0, 255));
      square.setStroke(false);
    }

    void draw() {
      shape(square, 25, 25);
    }
    PShape s;  // The PShape object

    void setup() {
      size(100, 100);
      // Creating a custom PShape as a square, by
      // specifying a series of vertices.
      s = createShape();
      s.beginShape();
      s.fill(0, 0, 255);
      s.noStroke();
      s.vertex(0, 0);
      s.vertex(0, 50);
      s.vertex(50, 50);
      s.vertex(50, 0);
      s.endShape(CLOSE);
    }

    void draw() {
      shape(s, 25, 25);
    }
    PShape s;

    void setup() {
      size(100, 100, P2D);
      s = createShape();
      s.beginShape(TRIANGLE_STRIP);
      s.vertex(30, 75);
      s.vertex(40, 20);
      s.vertex(50, 75);
      s.vertex(60, 20);
      s.vertex(70, 75);
      s.vertex(80, 20);
      s.vertex(90, 75);
      s.endShape();
    }

    void draw() {
      shape(s, 0, 0);
    }
    PShape alien, head, body;

    void setup() {
      size(100, 100);

      // Create the shape group
      alien = createShape(GROUP);

      // Make two shapes
      ellipseMode(CORNER);
      head = createShape(ELLIPSE, -25, 0, 50, 50);
      head.setFill(color(255));
      body = createShape(RECT, -25, 45, 50, 40);
      body.setFill(color(0));

      // Add the two "child" shapes to the parent group
      alien.addChild(body);
      alien.addChild(head);
    }

    void draw() {
      background(204);
      translate(50, 15);
      shape(alien); // Draw the group
    }
Description | The createShape() function is used to define a new shape. Once created, this shape can be drawn with the shape() function. The basic way to use the function defines new primitive shapes. One of the following parameters are used as the first parameter: ELLIPSE, RECT, ARC, TRIANGLE, SPHERE, BOX, QUAD, or LINE. The parameters for each of these different shapes are the same as their corresponding functions: ellipse(), rect(), arc(), triangle(), sphere(), box(), quad(), and line(). The first example above clarifies how this works. Custom, unique shapes can be made by using createShape() without a parameter. After the shape is started, the drawing attributes and geometry can be set directly to the shape within the beginShape() and endShape() methods. See the second example above for specifics, and the reference for beginShape() for all of its options. The createShape() function can also be used to make a complex shape made of other shapes. This is called a "group" and it's created by using the parameter GROUP as the first parameter. See the fourth example above to see how it works. After using createShape(), stroke and fill color can be set by calling methods like setFill() and setStroke(), as seen in the examples above. The complete list of methods and fields for the PShape class are in the Processing Javadoc.
Syntax |
    createShape()
    createShape(type)
    createShape(kind, p)
Parameters |
kind | int: either POINT, LINE, TRIANGLE, QUAD, RECT, ELLIPSE, ARC, BOX, SPHERE
p | float[]: parameters that match the kind of shape
Returns | PShape
Related | PShape endShape() loadShape()

Updated on November 10, 2017 05:36:29pm EST