2013-05-04 26 views
4

我想根據某些值創建一個分爲6個扇區的圓,扇區的角度取決於某個參數。參數值越大,圓弧的弧度越大。如何在html和css中創建多色圓圈

我理解它的方式可以通過製作一個具有這6個不同部分的圓圈,然後在其上放置另一個div來創建,從而產生這種白色環狀效果。我知道如何創建圈子,但無法理解如何動態地將其劃分爲不同的有色部分。

這甚至可能與CSS,是否存在使用Javascript的解決方案。任何幫助將深表謝意。

circle

+1

CSS圓圈四點 - 小提琴:http://jsfiddle.net/tupCW/ ..我不過是;沒有意識到有6個行業的任何CSS解決方案 – dotTutorials 2013-05-04 20:00:24

+0

這很可能是一個SVG庫:http://raphaeljs.com/ – Blender 2013-05-04 20:03:20

+0

如果像你說的那樣,將不會有任何CSS解決方案,依賴於某個參數'。我理解這個參數是相當可變的 - 沒有辦法去CSS。 – Kiruse 2013-05-04 20:03:38

回答

2

HTML5畫布是必經之路走。這裏有一些鏈接瞭解:

W3C Specification

Kinetic.js

+0

我想Kinetic.js在這種情況下會是一個矯枉過正的問題,因爲我想要一個非交互式和簡單的圖表。也許一旦我們使它更復雜,我們可以去Kinetic.js – Sachin 2013-05-05 07:22:32

+0

是的,這只是一個例子,你可以用帆布做什麼..當然,你不需要一個類似的東西庫.. – tobspr 2013-05-05 10:45:04

1
<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 

<canvas id="first" width="300" height="300" style="border:1px solid #000;">Your browser  does not support the HTML5 canvas tag 
</canvas> 

<p> 
    <select name="shapes" id="shapes"> 
    <option value="Square">Square</option> 
    <option value="Circle">Circle</option> 
    </select> 
</p> 
<p> 
    <select name="bkcolour" id="bkcolour"> 
    <option>Red</option> 
    <option>Black</option> 
    </select> 
</p> 

<button onclick="drawshapes()">Try it</button> 

<script> 
    function drawTenSquare() 
    { 
    for(var i=0; i<10; i++) 
    { 
     var x=45; 
    var y=25; 
    var canvas =document.getElementById("first"); 
      var context=canvas.getContext("2d"); 
      context.fillStyle="#FF0000"; 
      context.fillRect(x+(i*15),y+(i*5),10,10); 
    } 
    } 

    function drawTenCircle() 
    { 
    for(var i=0; i<10; i++) 
    { 
     var canvas=document.getElementById("first"); 
      var context=canvas.getContext("2d"); 
      context.beginPath(); 
      context.arc(95+(i*5),50+(i*2),40,0,2*Math.PI); 
      context.stroke(); 
    } 
    } 

    function drawshapes() 
    { 
    var shape = document.getElementById("shapes") 
    var index = shape.selectedIndex; 
    var valindex = shape[index].value; 

    if(valindex == "Square") 
    { 
    drawTenSquare(); 
    } 
    else if(valindex == "Circle") 
    { 
    drawTenCircle(); 
    } 
} 
</script> 

</body> 
</html> 
+0

看到這個畫布我猜它會幫助你設計或開發你的畫布。 – 2013-05-04 20:15:34

+0

試過它在jsfiddle不工作,但確實給出了一個想法,謝謝 – Sachin 2013-05-05 07:09:11