Commit 6c6d7eaf by Dmitry Baranovskiy

Merge branch 'master' of git@github.com:DmitryBaranovskiy/raphael

parents 2d5839be 5a4e6c39
# 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment