当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Processing createShape()用法及代码示例


Processing, createShape()用法介绍。

用法

  • createShape()
  • createShape(type)
  • createShape(kind, p)

参数

  • kind (int) POINT、LINE、TRIANGLE、QUAD、RECT、ELIPSE、ARC、BOX、SPHERE
  • p (float[]) 与形状类型匹配的参数

返回

  • PShape

说明

createShape() 函数用于定义新形状。创建后,可以使用shape() 函数绘制此形状。使用该函数的基本方法定义了新的原始形状。以下参数之一用作第一个参数:ELLIPSERECTARCTRIANGLESPHEREBOXQUADLINE。这些不同形状中的每一个的参数与其对应的函数相同:ellipse()rect()arc()triangle()sphere()box()quad()line()。上面的第一个例子阐明了它是如何工作的。



可以使用不带参数的createShape() 制作自定义的独特形状。形状启动后,可以在beginShape()endShape() 方法中将绘图属性和几何图形直接设置为形状。有关详细信息,请参见上面的第二个示例,以及所有选项的beginShape() 参考。



createShape() 函数还可用于制作由其他形状组成的复杂形状。这称为"group",它是通过使用参数GROUP 作为第一个参数创建的。请参阅上面的第四个示例以了解它是如何工作的。



使用 createShape() 后,可以通过调用 setFill()setStroke() 等方法来设置描边和填充颜色,如上面的示例所示。 PShape 类的方法和字段的完整列表在 Processing Javadoc 中。

例子

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
}

相关用法


注:本文由纯净天空筛选整理自processing.org大神的英文原创作品 createShape()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。