當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。