首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Raphael JS绘制同心线

Raphael JS绘制同心线
EN

Stack Overflow用户
提问于 2015-07-13 09:45:34
回答 2查看 57关注 0票数 0

我被困在使用Raphael:,我想制作一个基本的动画,绘制同心圆线,同时加载一些东西

所以,我做了这个功能:

代码语言:javascript
复制
function loadingButton(width, height) {

    width = width ? width : 240;
    height = height ? height : 240;




    var loadingButton = Raphael("loading-button", width, height);
    var center = 120,
        xloc = center,
        yloc = center,
        R = 120,
        imgW = 124,
        imgH = 140;
    var lines;
    var percent = loadingButton.text(center, center, '0');
    percent.attr({'font-size': 36, 'fill': '#fff'});
    var count = 0;
    var interval = setInterval(function(){

        if( count <= 100){
            var start_x = center+Math.round((center-30)*Math.cos(4*count*Math.PI/200));
            var start_y = center+Math.round((center-30)*Math.sin(4*count*Math.PI/200));
            var end_x = center+Math.round((center-10)*Math.cos(4*count*Math.PI/200));
            var end_y = center+Math.round((center-10)*Math.sin(4*count*Math.PI/200));   
            lines = loadingButton.path("M"+start_x+" "+start_y+"L"+end_x+" "+end_y).attr({"stroke":"#FFF","stroke-width":"1"});
            percent.attr({text: count});
            count++;
        }

        else {
            clearInterval(interval);
        }
    }, 50);






};

现场演示的 : http://jsfiddle.net/rfuqjL65/

问题是,正如你在小提琴上看到的,动画开始于第一季度(90°),而不是顶部(0°)。

问题是:,我想要动画从顶部开始。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-13 09:52:41

我不能让你的小提琴运转,但是:

您可以在坐标变量中添加/减Math.PI/2Math.cosMath.sin的角度参数(以弧度表示),这应该可以做到这一点!

票数 1
EN

Stack Overflow用户

发布于 2015-07-13 10:07:37

http://jsfiddle.net/rfuqjL65/2/我改变了你的代码。而且这起作用了。而且还

代码语言:javascript
复制
 var start_x = center+Math.round((center-30)*Math.sin(4*count*Math.PI/200));
                var start_y = center-Math.round((center-30)*Math.cos(4*count*Math.PI/200));
                var end_x = center+Math.round((center-10)*Math.sin(4*count*Math.PI/200));
                var end_y = center-Math.round((center-10)*Math.cos(4*count*Math.PI/200));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31380102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档