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.