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


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