欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-09 21:29:25
two.js 是面向现代 web 浏览器的一个二维绘图 api。two.js 可以用于多个场合:svg,canvas 和 webgl,旨在使平面形状和动画的创建更方便,更简...

two.js 是面向现代 web 浏览器的一个二维绘图 api。two.js 可以用于多个场合:svg,canvas 和 webgl,旨在使平面形状和动画的创建更方便,更简洁。

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

效果如下:

基于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;

//sun

var sun = two.makecircle(0,0,80);

sun.fill='#ff8000';

sun.stroke='#ff0000';

sun.linewidth=5;

//earth

var earth = two.makecircle(0,0,50);

earth.fill='#9acd32';

//moon

var 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(); 

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