Sam,

Yes, some thing like that would be great. It would also be nice to 
handle arrays of locations without the 'px' so it is easy to do math on 
them.

// place a circle at the center of some container
$("#container").drawShape("circle", { origin: "centre", radius: 30})

// draw a circle
$("#container").drawShape("circle", { origin: [5,8], radius: 30})

// draw multiple circles and style them all the same
$("#container").drawShape("circle", { origin: [[5,8],[30,45],...], 
radius: 30, style: {color: "red", opacity: .5, border-color: #900, 
border-style: "solid"}})

// draw a polyline
$("#container").drawShape("line" { path: [[5,8],[30,45],...], style: 
{color: "red", line-style: "dashed", lineWidth: 2}}).bind("mouseover", 
function(e){alert("I'm a line");});

I also think there is something to be said for creating shape objects like:

var redcircle = {
   id: "circle01",
   type: "circle",
   x: 5,
   y: 8,
   radius: 30,
   style: {color: #f00;},
};
var bluecircle = {
   id: "circle02",
   type: "circle",
   x: 5,
   y: 8,
   radius: 10,
   style: {color: #00f;},
};
var shapes = [];
shapes.push(redcircle);
shapes.push(bluecircle);

// add to circles, then hide the larger
$("#container").addShape(shapes);
$("#circle01").hide();

or

// add two circles (nested), then hide both of them
$("#container").addShape(redcircle);
$("#circle01").addShape(bluecircle);
$("#circle01").hide();

Anyway you get the idea.

-Steve

Sam Collett wrote:
> On 27/10/06, Stephen Woodbridge <[EMAIL PROTECTED]> wrote:
>> <snip> Since a lot of what I
>> do it maps and building apps on top of maps, I would really be able to
>> use some generic tools for drawing that are fast, cross browser and
>> capable of handling more than a few dozen points or objects.</snip>
> 
> So I guess what you want a a shape drawing plugin? That could be
> useful and I could imaging a syntax similar to this:
> 
> // draw a circle in the centre of #container
> $("#container").drawShape("circle", { origin: "centre", radius: "30px"})
> 
> // draw a circle in the 5px from the left and 8px from  the top,
> cropped when it reaches the edge (so you get a partial circle)
> $("#container").drawShape("circle", { origin: {left: "5px", top:
> "8px"}, radius: "30px" })
> 
> // draw a rectangle in the centre
> $("#container").drawShape("rectangle", { origin: "center", width:
> "30px", height: "35px" })
> 
> Other shapes could perhaps be added as well (triangles, trapezoids
> etc). Some shapes are under several categories (a square is a
> rectangle and a rohmbus). However, I have no idea how to implement
> something like this.
> 
> _______________________________________________
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/


_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to