README
authorBen Askins <ben.askins@gmail.com>
Thu, 8 Jan 2009 05:27:49 +0000 (13:27 +0800)
committerDmitry Baranovskiy <dmitry.baranovskiy@gmail.com>
Thu, 8 Jan 2009 05:46:30 +0000 (13:46 +0800)
Signed-off-by: Dmitry Baranovskiy <dmitry.baranovskiy@gmail.com>
README.markdown [new file with mode: 0644]

diff --git a/README.markdown b/README.markdown
new file mode 100644 (file)
index 0000000..28d0124
--- /dev/null
@@ -0,0 +1,406 @@
+# Raphaël
+
+Cross-browser vector graphics the easy way.
+
+## What is it?
+
+Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. In case you want to create your own specific chart or image crop-n-rotate widget, you can simply achieve it with this library.
+
+Raphaël uses SVG and VML as a base for graphics creation. Because of that every created object is a DOM object so you can attach JavaScript event handlers or modify objects later. Raphaël’s goal is to provide an adapter that will make drawing cross-browser and easy. Currently library supports Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.
+
+## How to use it?
+
+Download and include raphael.js into your HTML page, then use it as simply as:
+
+    // Creates canvas 320 × 200 at 10, 50
+    var paper = Raphael(10, 50, 320, 200);
+    // Creates circle at x = 50, y = 40, with radius 10
+    var circle = paper.circle(50, 40, 10);
+    // Sets the fill attribute of the circle to red (#f00)
+    circle.attr("fill", "#f00");
+    // Sets the stroke attribute of the circle to white (#fff)
+    circle.attr("stroke", "#fff");
+    
+## Reference
+
+### Main Function
+
+#### Raphael
+
+Function that creates a canvas on which to draw.
+
+##### Parameters
+
+   1. container HTMLElement or string
+   2. width number
+   3. height number
+
+or
+
+   1. x number
+   2. y number
+   3. width number
+   4. height number
+
+##### Usage
+
+    // Creates canvas 320 × 200 at 10, 50
+    var paper = Raphael(10, 50, 320, 200);
+    var paper = Raphael(document.getElementById("notepad"), 320, 200);
+    var paper = Raphael("notepad", 320, 200);
+    
+### Element’s generic methods
+
+Each object created on the canvas share the same generic methods:
+
+#### node
+
+Gives you reference to DOM object, so you can assign event handlers or just randomly mess around.
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.node.onclick = function () { c.attr("fill", "red"); };
+
+#### rotate
+
+Rotates element by given degree around its center.
+
+##### Parameters
+
+   1. degree number Degree of rotation (0 – 360°)
+   2. isAbsolute boolean [optional] Will rotation be relative or absolute
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.rotate(45);
+
+#### translate
+
+Moves element around the canvas by given dimensions.
+
+##### Parameters
+
+   1. dx number Pixels of translation by X
+   2. dy number Pixels of translation by Y
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.translate(10, 10);
+
+#### scale
+
+Scales element by given amount of times.
+
+##### Parameters
+
+   1. Xtimes number
+   2. Ytimes number
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.scale(1.5, 1.5);
+
+#### attr
+
+Sets attributes of elements.
+
+##### Parameters
+
+   1. params object
+
+or
+
+   1. attributeName string
+   2. value string
+
+###### Possible parameters
+
+    * cx number
+    * cy number
+    * dasharray string [“-”, “.”, “-.”, “-..”, “. ”, “- ”, “--”, “- .”, “--.”, “--..”]
+    * fill colour
+    * fill-opacity number
+    * font string
+    * font-family string
+    * font-size number
+    * font-weight string
+    * gradient object
+    * height number
+    * opacity number
+    * path pathString
+    * r number
+    * rotation number
+    * rx number
+    * ry number
+    * scale CSV
+    * stroke colour
+    * stroke-linecap string [“butt”, “square”, “round”, “miter”]
+    * stroke-linejoin string [“butt”, “square”, “round”, “miter”]
+    * stroke-miterlimit number
+    * stroke-opacity number
+    * stroke-width number
+    * translation CSV
+    * width number
+    * x number
+    * y number
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.attr("fill", "black");
+    c.attr({fill: "#000", stroke: "#f00", opacity: 0.5});
+
+#### animate
+
+Linearly changes attribute from current to specified in given amount of milliseconds.
+
+##### Parameters
+
+   1. newAttrs object
+   2. ms number
+   3. callback function [optional]
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.animate({cx: 20, r: 20}, 2000);
+
+#### getBBox
+
+Returns dimensions of given element.
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    var width = c.getBBox().width;
+
+#### toFront
+
+Moves element to front in hierarchy.
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.toFront();
+
+#### toBack
+
+Moves element to back in hierarchy.
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+    c.toBack();
+    
+### Graphic Primitives
+
+#### circle
+
+Creates circle.
+
+##### Parameters
+
+   1. x number X coordinate of the centre
+   2. y number Y coordinate of the centre
+   3. r number radius
+
+##### Usage
+
+    var c = paper.circle(10, 10, 10);
+
+#### rect
+
+Creates rectangle.
+
+##### Parameters
+
+   1. x number X coordinate of top left corner
+   2. y number Y coordinate of top left corner
+   3. width number
+   4. height number
+   5. r number [optional] radius for rounded corners, default is 0
+
+##### Usage
+
+    // regular rectangle
+    var c = paper.rect(10, 10, 10, 10);
+    // rounded rectangle
+    var c = paper.rect(10, 10, 100, 50, 10);
+
+#### ellipse
+
+Creates an ellipse.
+
+##### Parameters
+
+   1. x number X coordinate of the centre
+   2. y number X coordinate of the centre
+   3. rx number Horisontal radius
+   4. ry number Vertical radius
+
+##### Usage
+
+    var c = paper.ellipse(100, 100, 30, 40);
+
+#### image
+
+Embeds an image in SVG/VML area.
+
+##### Parameters
+
+   1. src string
+   2. x number
+   3. y number
+   4. width number
+   5. height number
+
+##### Usage
+
+    var c = paper.image("apple.png", 10, 10, 100, 100);
+
+#### path
+
+Initialise path drawing. In general case this function returns empty path object. To draw path use built in methods like lineTo and curveTo.
+
+##### Parameters
+
+   1. params object Similar to object for attr method
+   2. pathString string [optional] path in SVG path string format. See SVG documentation.
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);
+
+### Path Methods
+
+#### absolutely
+
+Sets trigger to count all following units as absolute ones, unless said otherwise. [on by default]
+
+Usage
+
+    var c = paper.path({stroke: "#036"}).absolutely()
+        .moveTo(10, 10).lineTo(50, 50);
+
+#### relatively
+
+Sets trigger to count all following units as relative ones, unless said otherwise.
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).relatively()
+        .moveTo(10, 10).lineTo(50, 50);
+
+#### moveTo
+
+Moves drawing point to given coordinates.
+
+##### Parameters
+
+   1. x number
+   2. y number
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);
+
+#### lineTo
+
+Draws straight line to given coordinates.
+
+##### Parameters
+
+   1. x number
+   2. y number
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);
+
+#### cplineTo
+
+Draws curved line to given coordinates. Line will have horizontal anchors on start and on finish.
+
+##### Parameters
+
+   1. x number
+   2. y number
+   3. width number
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).moveTo(10, 10).cplineTo(50, 50);
+
+#### curveTo
+
+Draws bicubic curve to given coordinates.
+
+##### Parameters
+
+   1. x1 number
+   2. y1 number
+   3. x2 number
+   4. y2 number
+   5. x3 number
+   6. y3 number
+
+##### Usage
+
+  var c = paper.path({stroke: "#036"}).moveTo(10, 10).curveTo(10, 15, 45, 45, 50, 50);
+
+#### qcurveTo
+
+Draws quadratic curve to given coordinates.
+
+##### Parameters
+
+   1. x1 number
+   2. y1 number
+   3. x2 number
+   4. y2 number
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).moveTo(10, 10).curveTo(10, 15, 45, 45, 50, 50);
+
+#### addRoundedCorner
+
+Draws quarter of circle form current point.
+
+##### Parameters
+
+   1. r number
+   2. dir string two letters direction
+
+Possible dir values
+
+* lu: left up
+* ld: left down
+* ru: right up
+* rd: right down
+* ur: up right
+* ul: up left
+* dr: down right
+* dl: down left
+
+##### Usage
+
+    var c = paper.path({stroke: "#036"}).moveTo(10, 10).addRoundedCorner(10, "rd");
+
+#### andClose
+
+Closes the path.
+
+##### Usage
+
+var c = paper.path({stroke: "#036"}).moveTo(10, 10).andClose();
+
+# License
+
+http://www.opensource.org/licenses/mit-license.php
+
+Copyright (c) 2008 Dmitry Baranovskiy (http://raphaeljs.com)
\ No newline at end of file