summaryrefslogtreecommitdiff
path: root/bezierstroke.pde
diff options
context:
space:
mode:
authorgit@eclectronics.org <git@eclectronics.org@eclectronics.org>2012-02-14 15:08:16 +0000
committergit@eclectronics.org <git@eclectronics.org@eclectronics.org>2012-02-14 15:08:16 +0000
commit503b291c29bb374ccfc51e24cfdb7ce0eb5a77e1 (patch)
tree6a0f3c34c744543967d5df0ada3fc597a754243a /bezierstroke.pde
parent89020cfbbec0fe8d0e15aa326174cb5af3d03ce6 (diff)
test white on blue
Diffstat (limited to 'bezierstroke.pde')
-rw-r--r--bezierstroke.pde28
1 files changed, 28 insertions, 0 deletions
diff --git a/bezierstroke.pde b/bezierstroke.pde
new file mode 100644
index 0000000..2cb85de
--- /dev/null
+++ b/bezierstroke.pde
@@ -0,0 +1,28 @@
+import geomerative.*;
+
+class bezierstroke {
+ float startsize,endsize,linewidth,mpfract,raisefract,bezierfract;
+ bezierstroke(float _s,float _e,float _l,float _m,float _r,float _b){
+ startsize=_s;
+ endsize=_e;
+ linewidth=_l;
+ mpfract=_m;
+ raisefract=_r;
+ bezierfract=_b;
+ }
+ void drawstroke(RPoint start,RPoint end) {
+ ellipse(start.x,start.y,startsize,startsize);
+ ellipse(end.x,end.y,endsize,endsize);
+ RPoint mp=new RPoint(start.x+((end.x-start.x)*mpfract),(start.y+((end.y-start.y)*mpfract))-((getHeight()-(start.y+((end.y-start.y)*mpfract)))*raisefract));
+ RPoint bv=new RPoint((end.x-start.x)*bezierfract,(end.y-start.y)*bezierfract);
+ RPoint b1=new RPoint(mp.x-bv.x,mp.y-bv.y);
+ RPoint b2=new RPoint(mp.x+bv.x,mp.y+bv.y);
+ beginShape();
+ vertex(start.x,start.y);
+ bezierVertex(start.x,start.y,b1.x,b1.y-(linewidth/2),mp.x,mp.y-(linewidth/2));
+ bezierVertex(b2.x,b2.y-(linewidth/2),end.x,end.y,end.x,end.y);
+ bezierVertex(end.x,end.y,b2.x,b2.y+(linewidth/2),mp.x,mp.y+(linewidth/2));
+ bezierVertex(b1.x,b1.y+(linewidth/2),start.x,start.y,start.x,start.y);
+ endShape();
+ }
+}