基于Two.js实现星球环绕动画效果的示例

时间:2021-05-26

Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合:SVG,Canvas 和 WebGL,旨在使平面形状和动画的创建更方便,更简洁。

Two.js 有一个内置的动画循环,可搭配其他动画库。Two.js 包含可伸缩矢量图形解释器,这意味着开发人员和设计人员都可以在商业应用中,如 Adobe Illustrator 中创建 SVG 元素,并把它引入 Two.js 使用场景中。

效果如下:

下面是核心js code HTML就不贴了,需要引入two.js文件:

var elem = document.getElementById('draw-animation');var two = new Two({ width: 700, height: 700 }).appendTo(elem);//外层大运行轨迹var track = two.makeCircle(0, 0, 200);track.fill='transparent';track.stroke='#3366FF';track.linewidth=3;//sunvar sun = two.makeCircle(0,0,80);sun.fill='#FF8000';sun.stroke='#FF0000';sun.linewidth=5;//earthvar earth = two.makeCircle(0,0,50);earth.fill='#9ACD32';//moonvar moon = two.makeCircle(100,0,30);moon.fill='#1C75BC';//inline 小的运行轨迹var inline = two.makeCircle(0,0,100);inline.stroke='#3366FF';inline.fill='transparent';inline.linewidth=3;//group 分组 一类型为一组var group = two.makeGroup(inline,earth,moon);console.dir(group);var group1 = two.makeGroup(sun,track,group); group1.translation.set(two.width / 2, two.height / 2); //平移(x,y)父元素的一半group.translation.set(200, 0); group.scale = 0.8; //比例two.bind('update', function(frameCount) {//执行动画 group1.rotation += 0.01 *2* Math.PI; group.rotation += 0.01 * Math.PI;}).play();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章