matlab红点沿着正弦曲线运动,如何使用css3让一个元素做正弦曲线运动?

e537a7156517cb6ca29a106c13c0af51.png

天涯尽头无女友

纯CSS3我知道的方法里面搞不出来因为CSS3动画中没有对路径的操作,或者说不好搞除非你把每一帧的变化都写上。如果会AE可以考虑先用AE制作动画,然后使用Lottie导出web可用的json文件,这样可以做出很复杂的动画。不过这个方法我还没用过可以去看Lottie的官方文档用Canvas实现下面说一个使用Canvas制作的方法,如果要用操作DOM来实现动画,原理是一样的只不过把绘制那一块改为设置元素的定位。先看一下Demo定义小球类//创建一个小球的构造函数functionO(){}//给构造函数添加继承属性O.prototype={init:function(){//X轴(正弦运动中心线的位置)this.h=canvas.height/2;//在X轴所处的位置this.x=0;//在Y轴所处的位置this.y=this.h;//小球半径this.r=20;//小球运动的速度this.v=10;//小球颜色this.color="rgb(255,68,68)";},draw:function(){//绘制小球ctx.beginPath();ctx.arc(this.x,this.y,this.r,0,Math.PI*2);ctx.fillStyle=this.color;ctx.fill();this.updata();},//更新小球位置updata:function(){//如果横向超出Canvas宽度就回到起点if(this.x>canvas.width){this.x=0;}//横轴移动this.x+=this.v;//计算在纵轴的位置,中心位置加上偏移//计算弧度,因为Math.sin()的参数是弧度,将整个宽度看为一个周期,X处所占的弧度就为,起点到X距离与宽度之比乘以2πletradian=this.x/canvas.width*Math.PI*2;//计算偏移高度,因为Math.sin()返回值是-1~1的数字,所以要将这个值转化为真正移动的高度,就是容器的一班高度减去球直径letheight=(canvas.height-this.r*2)/2this.y=this.h+Math.sin(radian)*height;}}绘制小球//创建小球并初始化varo=newO();o.init();//开始动画functionanimation(){//刷新Canvasctx.fillStyle="rgba(255,255,255)";ctx.fillRect(0,0,1000,500);//绘制小球o.draw();//调用下一帧aimnid=requestAnimationFrame(animation);}注释里面都已经写的很清楚了,我就不解释了,完整代码在这里查看完整代码如果对你有帮助请给一个Star~哦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例,展示如何使用MATLAB生成带噪声的正弦曲线,并使用神经网络进行拟合。 首先,我们生成一个包含噪声的正弦曲线。在这个示例中,我们将使用一个频率为1 Hz,振幅为1的正弦波,并加入标准差为0.1的高斯噪声。 ```matlab % 生成正弦波 t = 0:0.01:2*pi; y = sin(t); % 添加高斯噪声 noise = 0.1*randn(size(t)); y_noisy = y + noise; % 绘制结果 plot(t,y_noisy) hold on plot(t,y,'LineWidth',2) legend('带噪声的正弦曲线','原始正弦曲线') ``` 接下来,我们使用神经网络进行拟合。在这个示例中,我们使用一个具有一个隐藏层的前馈神经网络。输入是时间序列,输出是对应的正弦值。我们将使用50个神经元作为隐藏层,并且训练100个时期。 ```matlab % 创建一个前馈神经网络 net = feedforwardnet(50); % 将数据分为训练集和测试集 train_pct = 0.8; train_ind = 1:round(train_pct*length(t)); test_ind = (length(train_ind)+1):length(t); x_train = t(train_ind); y_train = y_noisy(train_ind); x_test = t(test_ind); y_test = y_noisy(test_ind); % 训练神经网络 net = train(net,x_train,y_train); % 使用测试数据评估神经网络性能 y_pred = net(x_test); rmse = sqrt(mean((y_pred - y_test).^2)); fprintf('RMSE=%.3f\n', rmse) % 绘制结果 y_pred_all = net(t); plot(t,y_pred_all,'LineWidth',2) legend('带噪声的正弦曲线','原始正弦曲线','神经网络拟合曲线') ``` 此时,我们可以看到神经网络已经成功地拟合了带噪声的正弦波,并且在测试数据上获得了一个相对较小的RMSE值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值