Как разделить полукруглую область на цветные сегменты с помощью HTML Canvas - PullRequest
3 голосов
/ 13 января 2011

пытается разделить полукруглую область на цветные сегменты в HTML Canvas. Вот что я попробовал,

            ctx.save();
            ctx.translate(c.width / 2, (c.height / 2)-1);
            ctx.strokeStyle = "red"
            ctx.lineWidth = 3;
            ctx.lineCap = "round";
            var x=400; // number of times lineTo strokes. Greater the value the better is the smoothness
            var factor=1;   //with =1, the entire semicirular region is filled.
            for (var i = 0; i < x; i++) { 
                 //ctx.rotate(Math.PI);
                ctx.beginPath();

                ctx.strokeStyle = "rgba(255,0,0,1)";
                //ctx.rotate(-Math.PI/2);

                ctx.rotate((-Math.PI * factor) / x); 
                //1st color segment, factor=1 helps to paint 100% of semicircular region

                ctx.moveTo(122, 0);
                ctx.lineTo(70, 0);
                ctx.stroke();
                //ctx.rotate(Math.PI); //2nd color segment

Альтернативным способом может быть использование сегментов концентрической дуги (). Я пытаюсь это сейчас. Но любой, кто сможет пролить свет, очень поможет.

1 Ответ

1 голос
/ 13 января 2011

образец в http://www.phpied.com/wp-content/uploads/2008/02/canvas-pie.html был тем, который я искал.Использует концентрическую дугу (), как я и ожидал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...