/** * * @param x double * @param y double * @param z double */ @Override public void vertex(double x, double y, double z) { shape.vertex((float) x, (float) y, (float) z); }
/** * * @param x double * @param y double */ @Override public void vertex(double x, double y) { shape.vertex((float) x, (float) y); }
/** * * @param x double * @param y double * @param z double * @param u double * @param v double */ @Override public void vertex(double x, double y, double z, double u, double v) { shape.vertex((float) x, (float) y, (float) z, (float) u, (float) v); }
public void vertex(float x, float y, float z) { vertex(x, y); // maybe? maybe not? }
public void vertex(float x, float y, float z) { // why not? vertex(x, y); }
face.vertex(-1, -1, 1, 0, 0); face.vertex(1, -1, 1, 1, 0); face.vertex(1, 1, 1, 1, 1); face.vertex(-1, 1, 1, 0, 1); break; case 1: face.vertex(1, -1, -1, 0, 0); face.vertex(-1, -1, -1, 1, 0); face.vertex(-1, 1, -1, 1, 1); face.vertex(1, 1, -1, 0, 1); break; case 2: face.vertex(-1, 1, 1, 0, 0); face.vertex(1, 1, 1, 1, 0); face.vertex(1, 1, -1, 1, 1); face.vertex(-1, 1, -1, 0, 1); break; case 3: face.vertex(-1, -1, -1, 0, 0); face.vertex(1, -1, -1, 1, 0); face.vertex(1, -1, 1, 1, 1); face.vertex(-1, -1, 1, 0, 1); break; case 4: face.vertex(1, -1, 1, 0, 0);
PShape createFrame(PImage photo) { PShape face = createShape(); face.beginShape(QUAD); face.noStroke(); //face.stroke(0); face.textureMode(NORMAL); face.texture(photo); face.vertex(-1, -1, 0, 0, 0); face.vertex(1, -1, 0, 1, 0); face.vertex(1, 1, 0, 1, 1); face.vertex(-1, 1, 0, 0, 1); face.endShape(); return face; }
PShape createTextGraphics(String s) { PGraphics buffer = createGraphics(width/2, height); buffer.beginDraw(); buffer.textSize(128); buffer.background(0x80800020); stroke(255); fill(255); buffer.text(s, width / 8, height / 2 + height / 4); buffer.endDraw(); PShape face = createShape(); face.beginShape(QUAD); face.noStroke(); face.textureMode(NORMAL); face.texture(buffer); face.vertex(-1, -1, 0, 0, 0); face.vertex(1, -1, 0, 1, 0); face.vertex(1, 1, 0, 1, 1); face.vertex(-1, 1, 0, 0, 1); face.endShape(); return face; }
public PShape createGridShape() { int gridSize = 20; stroke(128); fill(64); strokeWeight(1); println("width=" + width + " height=" + height); PGraphics buffer = createGraphics(width / 2, height, P2D); buffer.beginDraw(); for (int y = 0; y < height; y += gridSize) { buffer.line(0, y, width/2, y); } for (int x = 0; x < width; x += gridSize) { buffer.line(x, 0, x, height); } buffer.endDraw(); PShape face = createShape(); face.beginShape(QUAD); face.noStroke(); face.textureMode(NORMAL); face.texture(buffer); face.vertex(-1, -1, 0, 0, 0); face.vertex(1, -1, 0, 1, 0); face.vertex(1, 1, 0, 1, 1); face.vertex(-1, 1, 0, 0, 1); face.endShape(); return face; }
PShape createReticle() { final int RADIUS = 64; PGraphics buffer = createGraphics(RADIUS, RADIUS); buffer.beginDraw(); buffer.background(0, 0); // transparent buffer.stroke(255); buffer.strokeWeight(4); buffer.ellipseMode(CENTER); buffer.ellipse(RADIUS / 2, RADIUS / 2, RADIUS / 3, RADIUS / 3); buffer.strokeWeight(8.0f); buffer.line(RADIUS/2, 0, RADIUS/2, RADIUS - 1); buffer.line(0, RADIUS/2, RADIUS-1, RADIUS/2); buffer.endDraw(); PShape face = createShape(); face.beginShape(QUAD); face.noStroke(); face.textureMode(NORMAL); face.texture(buffer); face.vertex(-1, -1, 0, 0, 0); face.vertex(1, -1, 0, 1, 0); face.vertex(1, 1, 0, 1, 1); face.vertex(-1, 1, 0, 0, 1); face.endShape(); return face; }
Table data; PShape dataPlot; size(1620, 1080,P2D); //create a group to store the lines from each row dataPlot = createShape(); //load the data, specifying it has a header and it's tab separated data = loadTable("data.tsv", "header, tsv"); //traverse each row dataPlot.beginShape(LINES); for(TableRow row : data.rows()){ //extract each value int x1 = row.getInt("x1"); int y1 = row.getInt("y1"); int x2 = row.getInt("x2"); int y2 = row.getInt("y2"); //add the coordinates as lines to the group dataPlot.stroke(160); dataPlot.vertex(x1,y1); dataPlot.stroke(0); dataPlot.vertex(x2,y2); } dataPlot.endShape(); //render the plot shape(dataPlot);
tess.vertex(x0, y0, z0, uv[2 * i0 + 0], uv[2 * i0 + 1]); tess.vertex(x1, y1, z1, uv[2 * i1 + 0], uv[2 * i1 + 1]); tess.vertex(x2, y2, z2, uv[2 * i2 + 0], uv[2 * i2 + 1]); } else if (is2D()) { float x0 = vertices[4 * i0 + 0], y0 = vertices[4 * i0 + 1]; tess.vertex(x0, y0, uv[2 * i0 + 0], uv[2 * i0 + 1]); tess.vertex(x1, y1, uv[2 * i1 + 0], uv[2 * i1 + 1]); tess.vertex(x2, y2, uv[2 * i2 + 0], uv[2 * i2 + 1]);
tess.vertex(x0, y0, z0, uv[2 * i0 + 0], uv[2 * i0 + 1]); tess.vertex(x1, y1, z1, uv[2 * i1 + 0], uv[2 * i1 + 1]); tess.vertex(x2, y2, z2, uv[2 * i2 + 0], uv[2 * i2 + 1]); } else if (is2D()) { float x0 = vertices[4 * i0 + 0], y0 = vertices[4 * i0 + 1]; tess.vertex(x0, y0, uv[2 * i0 + 0], uv[2 * i0 + 1]); tess.vertex(x1, y1, uv[2 * i1 + 0], uv[2 * i1 + 1]); tess.vertex(x2, y2, uv[2 * i2 + 0], uv[2 * i2 + 1]);
PShape createTextGraphics(String s) { PGraphics buffer = createGraphics(width/2, height); buffer.beginDraw(); buffer.strokeWeight(8.0f); buffer.background(color(0,128,0)); buffer.stroke(0xff, 0, 0); buffer.text(s, 0, height / 4); buffer.stroke(255); buffer.textSize(64f); buffer.text(s, 0, height / 3); buffer.stroke(0x0000FF); buffer.textSize(128); buffer.text(s, 0, height / 2 + height / 4); buffer.fill(color(128, 0, 128)); buffer.rect(400, 200, 400, 400); buffer.stroke(128); buffer.line(0, 0, width / 2, height); buffer.endDraw(); PShape face = createShape(); face.beginShape(QUAD); face.noStroke(); face.textureMode(NORMAL); face.texture(buffer); face.vertex(-1, -1, 0, 0, 0); face.vertex(1, -1, 0, 1, 0); face.vertex(1, 1, 0, 1, 1); face.vertex(-1, 1, 0, 0, 1); face.endShape(); return face; }