畫布API包含的一些功能,這似乎做的工作就好了:
.moveTo
/.lineTo
的行路
.arc
爲圓形路徑
.stroke
中風的路徑(線)
.fill
填寫路徑(圓)
下面是一個非常簡單的概念證明:http://jsfiddle.net/eGjak/275/。
我已經使用(x, y)
爲線條和圓圈,這意味着線條從兩個圓圈的中點出發。 r
是一個圓的半徑。
var ctx = $('#cv').get(0).getContext('2d');
var circles = [ // smaller circles
{ x: 50, y: 50, r: 25 },
{ x: 250, y: 50, r: 25 },
{ x: 250, y: 250, r: 25 },
{ x: 50, y: 250, r: 25 },
];
var mainCircle = { x: 150, y: 150, r: 50 }; // big circle
function drawCircle(data) {
ctx.beginPath();
ctx.arc(data.x, data.y, data.r, 0, Math.PI * 2); // 0 - 2pi is a full circle
ctx.fill();
}
function drawLine(from, to) {
ctx.beginPath();
ctx.moveTo(from.x, from.y);
ctx.lineTo(to.x, to.y);
ctx.stroke();
}
drawCircle(mainCircle); // draw big circle
$.each(circles, function() { // draw small circles and lines to them
drawCircle(this);
drawLine(mainCircle, this);
});
太棒了!人們如何去向圈子添加內容?是否可以添加一個ID給他們,然後$(「#ID」)。html(東西)? – 2012-02-28 16:16:02
@Dirty Bird設計:不,用畫布,你最終只能看到某些像素被着色,沒有其他東西(沒有元素等)。如果你想要各種互動,那麼畫布可能不是要走的路。 – pimvdb 2012-02-28 16:19:25
我很欣賞這課!我將研究混合線條的畫布元素,並使用CSS來設計構成圓形的div。 – 2012-02-28 16:28:51