void showHelp() { fill(yellow,40); rect(0,0,height,height); pushMatrix(); translate(20,20); fill(dgreen); text(" CURVE EDITOR written by Jarek Rossignac in March 2007",0,0); translate(0,20); fill(dblue); translate(0,20); text("First click in the window to activate it ",0,0); translate(0,20); text("Press SPACE to show/hide this help text and 'M' to show/hide the menu-bar on the right ",0,0); translate(0,20); text("Use buttons to adjust values (right-top) and toggles/commands (right-bottom) to change states or do things",0,0); translate(0,20); text("Buttons: '.' resets the value, '-' and '+' decrement, increment it, '<' and '>' use larger steps",0,0); translate(0,20); text("To draw a curve: click 'c' then press the mouse and draw it",0,0); translate(0,20); text("To edit the curve: click to select the closest vertex V and drag to move it",0,0); translate(0,20); text(" if you hold 'q', the nearby vertices will be adjusted to smooth the curve",0,0); translate(0,20); text("To delete a vertex, hold 'd' and click on it",0,0); translate(0,20); text("To add a vertex, hold 'a', click close to the middle of an edge, drag to move it",0,0); translate(0,20); text("Hold: 't' to transalte the curve's position, 'z' or 'Z' to zoom, 'r' or 'R' to rotate, 'f' to fit",0,0); translate(0,20); text(" You can also use the scroll wheel to zoom",0,0); translate(0,20); text("Hold: 'e' to edit the position and orientation by dragging",0,0); translate(0,20); text("A refined curve is always displayed and can be filled or used to resample",0,0); translate(0,20); text("Hold: 's' or 'S' and move the mouse to smooth surrounding portions of the curve",0,0); translate(0,20); text(" 'z' and 'r' keep V fixed, 'Z' and 'R' keep G (barycenter) fixed, 'e' computes a fixed point past G",0,0); translate(0,20); text("To cache the curve into layer n press SHIFT+n, with n=0,1,2...9, to retrieve it press n, with n=0,1,2...9",0,0); translate(0,20); text("If running local: 'W' to save points and 'X' to save a picture (DO NOT USE IN WEB BROWSER!).",0,0); translate(0,20); fill(dred); translate(0,20); popMatrix(); noFill(); }