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


Processing createGraphics()用法及代码示例


Processing, createGraphics()用法介绍。

用法

  • createGraphics(w, h)
  • createGraphics(w, h, renderer)
  • createGraphics(w, h, renderer, path)

参数

  • w (int) 像素宽度
  • h (int) 像素高度
  • renderer (String) P2D、P3D 或 PDF
  • path (String) 文件名(可以是绝对路径或相对路径)

返回

  • PGraphics

说明

创建并返回一个新的 PGraphics 对象。如果您需要绘制到 off-screen 图形缓冲区,请使用此类。前两个参数以像素为单位定义宽度和高度。第三个可选参数指定渲染器。它可以定义为 P2D、P3D、PDF 或 SVG。如果不使用第三个参数,则设置默认渲染器。 PDF 和 SVG 渲染器需要文件名参数。



重要的是要考虑与 createGraphics() 一起使用的渲染器与 size() 中指定的主渲染器的关系。例如,只有在 size() 中定义了其中之一时,才能将 P2D 或 P3D 与 createGraphics() 一起使用。与 Processing 1.0 不同,P2D 和 P3D 使用 OpenGL 进行绘图,而当使用 OpenGL 渲染器时,主绘图表面必须基于 OpenGL。如果在 size() 中使用 P2D 或 P3D 作为渲染器,则任何选项都可以与 createGraphics() 一起使用。如果在 size() 中使用默认渲染器,则只有默认、PDF 或 SVG 可以与 createGraphics() 一起使用。



beginDraw()endDraw() 之间运行所有绘图函数很重要。作为此规则的例外,smooth() 应该在 beginDraw() 之前在 PGraphics 对象上运行。有关更多详细信息,请参阅smooth() 的参考。



createGraphics() 函数几乎不应该在draw() 中使用,因为设置图形需要内存和时间。在 draw() 期间一次性或偶尔使用可能是可以接受的,但以每秒 60 帧的速度调用 createGraphics() 的代码可能会耗尽内存或冻结您的草图。



与完全不透明的主绘图表面不同,使用createGraphics() 创建的表面可以具有透明度。这使得绘制图形并保持 Alpha 通道成为可能。通过使用save() 编写PNG 或TGA 文件,将尊重图形对象的透明度。

例子

PGraphics pg;

void setup() {
  size(200, 200);
  pg = createGraphics(100, 100);
}

void draw() {
  pg.beginDraw();
  pg.background(102);
  pg.stroke(255);
  pg.line(pg.width*0.5, pg.height*0.5, mouseX, mouseY);
  pg.endDraw();
  image(pg, 50, 50); 
}

相关用法


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