Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 画移动的圆圈_Javascript_Html_Jquery Ui_Canvas - Fatal编程技术网

Javascript 画移动的圆圈

Javascript 画移动的圆圈,javascript,html,jquery-ui,canvas,Javascript,Html,Jquery Ui,Canvas,在搜索如何使用php创建移动圆圈时,我发现了这一点。但由于我对php不太精通,所以大多数事情我都不理解。因此我想现在我必须咨询专家:) 我想在php页面上画一个圆周运动的圆圈。 我的努力:我已经做了很多尝试来解决这个问题,但我发现只有canvasHTML5才能实现。但是我陷入了笛卡尔坐标、radius等领域。这些东西真的让我困惑。 请给我一些建议。PHP是一种服务器端编程语言。听起来您要做的是在浏览器中设置一个圆的动画。PHP不在浏览器中运行,因此不能使用PHP设置圆的动画 但是,您可以创建一个

在搜索如何使用php创建移动圆圈时,我发现了这一点。但由于我对php不太精通,所以大多数事情我都不理解。因此我想现在我必须咨询专家:)
我想在php页面上画一个圆周运动的圆圈。
我的努力:我已经做了很多尝试来解决这个问题,但我发现只有
canvas
HTML5才能实现。但是我陷入了笛卡尔坐标、radius等领域。这些东西真的让我困惑。

请给我一些建议。

PHP是一种服务器端编程语言。听起来您要做的是在浏览器中设置一个圆的动画。PHP不在浏览器中运行,因此不能使用PHP设置圆的动画

但是,您可以创建一个
,并使用JavaScript为其设置动画。是画布上的MDN教程,包括动画

作为
canvas
的替代方法,您可以使用一个简单的
,使用CSS
边框半径将其变成一个圆圈:50%
,然后使用纯JavaScript或jQuery对其进行动画处理

绘制圆并使用
jQuery.animate
将其再次向右、向左和向右移动


jQuery.animate有完整的文档记录。

背后的数学是:

x = centerX + radius * Math.cos(angle * Math.PI / 180);
y = centerY + radius * Math.sin(angle * Math.PI / 180);
现在,您可以将结果输入到包含球的div元素:

var element = document.getElementById('ball');
var angle = 0;
var x = 0;
var y = 0;
var w = (window.innerWidth - 50) / 2;
var h = (window.innerHeight - 50) / 2;

function ballCircle() {
    x = w + w * Math.cos(angle * Math.PI / 180);
    y = h + h * Math.sin(angle * Math.PI / 180);

    ball.style.left = x + 'px';
    ball.style.top = y + 'px';

    angle++;
    if (angle > 360) {
        angle = 0;
    }
    setTimeout(ballCircle,20);
}
ballCircle();

我在JSFIDLE上做了一个演示:

这是一个html5移动圆圈的示例,其中有一个教程解释了代码及其实现方式。代码在gplv3许可下,显然也是免费的。

焦点片段 ctx.strokeStyle='rgb(255,0,0)'; ctx.线宽=10

                ctx.beginPath();
                ctx.arc(x, y, radius, 0, Math.PI * 2, false);
                ctx.closePath();
                ctx.stroke();
另一个示例如下所示,其中显示了相同的动画透视图(如果您正在寻找)。

重点是在某个点打断动画,从而在代码的重画部分将下面的代码片段置于焦点

                if (!ctx.isPointInPath(300,500)) {
                    x = x + 1;
                    y = y + 2;
                    ctx.strokeStyle = colorToHex(getRandom(255),getRandom(255),getRandom(255));
                    ctx.lineWidth   = 10;

                    ctx.beginPath();
                    ctx.arc(x, y, radius, 0, Math.PI * 2, false);
                    ctx.closePath();

                    ctx.stroke();
                    }

PHP不能在浏览器中移动圆圈:PHP只生成发送到浏览器的HTML;这取决于html(或js)在浏览器中执行自己的操作,在移动操作之前,按规则循环开始。然后,您可以简单地添加其他命令,一次搜索一个命令。甚至不知道“笛卡尔”、“半径”之类的意思。读一读;)@马克·贝克感激。。那么下一步应该做什么,或者我应该学习什么呢?我怎么能相信
PHP,它只生成发送到浏览器的HTML
@user2600487的答案让我思考。。。你想移动一个圆,还是想移动一个圆路径中的东西?这真是太棒了!我只是好奇,因为我一直在尝试学习新的东西,但你认为css3动画可以做到这一点吗?我不确定,但我认为你可以使用CSS的动画功能。我想你需要使用一个更大的图像体,一端是圆,以获得圆外的轴心。我不知道你怎么能把它做成椭圆形的动画。仅仅发布链接并不是一个真正的答案。如果你能从这些视频中提取基本的代码片段,或者作为评论会更好