// ----------------------------------------------- public PShape stem() { PShape s = createShape(); s.beginShape(); s.noFill(); s.stroke(255); s.strokeWeight(1); s.scale(ratio); s.rotate(angle); // First point s.curveVertex(skeleton.position.get(0).x, skeleton.position.get(0).y); // Middle points for (PVector p : skeleton.position) s.curveVertex(p.x, p.y); // Last point s.curveVertex( skeleton.position.get(skeleton.position.size() - 1).x, skeleton.position.get(skeleton.position.size() - 1).y); s.endShape(); return s; }
// ----------------------------------------------- public PShape leafveins() { PShape master = createShape(GROUP); for (Veins v : veins) { PShape s = createShape(); s.beginShape(); s.noFill(); s.stroke(255); s.strokeWeight(1); s.scale(ratio); s.rotate(angle); s.vertex(v.begin.x, v.begin.y); s.vertex(v.begin.x, v.begin.y); s.vertex(v.end.x, v.end.y); s.vertex(v.end.x, v.end.y); s.endShape(); master.addChild(s); } return master; }
// ----------------------------------------------- public PShape simpleLeaf(float ratio) { PShape s = createShape(); s = createShape(); s.beginShape(); s.fill(c); s.noStroke(); s.rotate(angle); s.curveVertex(0, 0); s.curveVertex(0, 0); s.curveVertex(30, -50); s.curveVertex(0, -100); s.curveVertex(-30, -50); s.curveVertex(0, 0); s.curveVertex(0, 0); s.scale(ratio); s.endShape(); return s; }
// ----------------------------------------------- public PShape complexLeaf() { PShape s = createShape(); s.beginShape(); s.fill(0xffFF5757); s.noStroke(); s.scale(ratio); s.rotate(angle); // First point s.curveVertex(skeleton.position.get(0).x, skeleton.position.get(0).y); s.curveVertex(skeleton.position.get(0).x, skeleton.position.get(0).y); // Middle points for (int i = 1; i < skeleton.position.size() - 1; i++) { float x = skeleton.position.get(i).x; float y = skeleton.position.get(i).y; float a = skeleton.angle.get(i); ; x += cos(a - angleVeins) * sizeVeins; y += sin(a - angleVeins) * sizeVeins; s.curveVertex(x, y); Veins v = new Veins(skeleton.position.get(i), new PVector(x, y)); veins.add(v); } // Peak point s.curveVertex( skeleton.position.get(skeleton.position.size() - 1).x, skeleton.position.get(skeleton.position.size() - 1).y); // Return Middle points for (int i = skeleton.position.size() - 2; i >= 1; i--) { float x = skeleton.position.get(i).x; float y = skeleton.position.get(i).y; float a = skeleton.angle.get(i); x += cos(a - PI + angleVeins) * sizeVeins; y += sin(a - PI + angleVeins) * sizeVeins; s.curveVertex(x, y); Veins v = new Veins(skeleton.position.get(i), new PVector(x, y)); veins.add(v); } // Last point s.curveVertex(skeleton.position.get(0).x, skeleton.position.get(0).y); s.curveVertex(skeleton.position.get(0).x, skeleton.position.get(0).y); s.endShape(); return s; }