curvedraw
diff README.rst @ 16:7f795f7fecd6
readme and COPYING
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 20 Dec 2015 10:55:57 +0200 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/README.rst Sun Dec 20 10:55:57 2015 +0200 1.3 @@ -0,0 +1,58 @@ 1.4 +Curve Draw 1.5 +========== 1.6 + 1.7 +Overview 1.8 +-------- 1.9 +Curvedraw is a simple 2D curve drawing program. I've often found it useful to 1.10 +draw curves for use in my graphics programs. They can be useful for procedural 1.11 +modelling (extrusion or surfaces of revolution), for animation paths, etc. 1.12 + 1.13 +License 1.14 +------- 1.15 +Copyright (C) 2015 John Tsiombikas <nuclear@member.fsf.org> 1.16 +This program is free software. Feel free to use it, modify it and/or 1.17 +redistribute it under the terms of the GNU General Public License version 3 or 1.18 +(at your option) any later version published by the Free Software Foundation. 1.19 +See COPYING for details. 1.20 + 1.21 +Usage 1.22 +----- 1.23 +Mouse: 1.24 + - Click to start adding points to a new curve, then finish it by right clicking. 1.25 + - Click on a curve to select it. 1.26 + - Right-click on a control point to remove it. 1.27 + - Click with a curve selcted to continue adding points to it. 1.28 + - Right-click in empty space to clear the selection. 1.29 + 1.30 +Keys: 1.31 + - Holding 's' while adding points snaps to grid. 1.32 + - Holding SHIFT-'s' while adding points snaps to nearest existing point. 1.33 + - Press ESC to cancel the currently created curve. 1.34 + - Press 'q' to exit. 1.35 + - Press '1' - '3' to change selected curve type (polyline, hermite, bspline). 1.36 + - Press 'b' to show the selected curve's bounding box. 1.37 + - Press 'n' to normalize the selcted curve to the unit square. 1.38 + - Press 'e' to export the curves to a file called "test.curves" (TODO file dialog) 1.39 + - Press 'l' to load curves from the "test.curves" file (TODO file dialog) 1.40 + 1.41 +Viewport: 1.42 + - Drag with the left or middle mouse button to pan. 1.43 + - Drag up or down with the right mouse button to zoom. 1.44 + 1.45 +Curves file format 1.46 +------------------ 1.47 +The files read and written by this program are simple text files. They start 1.48 +with the word "GCURVES" in caps in the first line, followed by a series of curve 1.49 +blocks of the form:: 1.50 + 1.51 + curve { 1.52 + type <curve type, can be "hermite", "polyline", or "bspline"> 1.53 + cpcount <number of control points> 1.54 + cp <x> <y> <z> <w> 1.55 + ... 1.56 + } 1.57 + 1.58 +The control points are 4-vectors to allow for representing 3D rational 1.59 +b-splines. Lower-dimensional curves should set 'w' to 1, and all other unused 1.60 +coordinates to 0. Rational 2D b-splines are represented as 3D splines on the z=0 1.61 +plane, so again 'w' acts as the weight.