From 503b291c29bb374ccfc51e24cfdb7ce0eb5a77e1 Mon Sep 17 00:00:00 2001 From: "git@eclectronics.org" Date: Tue, 14 Feb 2012 15:08:16 +0000 Subject: test white on blue --- bezierstroke.pde | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 bezierstroke.pde (limited to 'bezierstroke.pde') 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(); + } +} -- cgit v1.2.3