zdog实现一个面包拳击手三维动画效果代码

代码语言:html

所属分类:动画

代码描述:zdog实现一个面包拳击手三维动画效果代码

代码标签: 面包 拳击手 三维动画 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>

  <meta charset="UTF-8">
  

  
  
  
<style>
body,
html {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #4d3d3d;
  min-height: 100vh;
  overflow: hidden;
}

svg {
  width: 100%;
  height: 100%;
  cursor: move;
}
</style>



</head>

<body  >
  <svg id="burger" width="200" height="200"></svg>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/zdog.dist.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TweenMax.min.js"></script>
      <script  >
const svg = document.getElementById('burger');

const COLORS = {
  arm:    '#181818',
  bun:    '#FAAB3E',
  cheese: '#FFDA01',
  eye:    '#181818',
  glove:  '#E81802',
  patty:  '#892C0E',
  seed:   '#FAD6A2',
  tomato: '#E81802'
}

const DIAMETER = 200;
const LENGTH = 24;
const STROKE = LENGTH / 2;
const HALFSTROKE = STROKE / 2;
const TAU = Zdog.TAU;
const ZOOM = 3;

let sceneWidth = DIAMETER;
let sceneHeight = DIAMETER;
let viewWidth = sceneWidth * ZOOM;
let viewHeight = sceneHeight * ZOOM;
let svgWidth = svg.getAttribute('width');
let svgHeight = svg.getAttribute('height');

svg.setAttribute('viewBox', `${-viewWidth/2}  ${-viewHeight/2} ` + `${viewWidth} ${viewHeight}`);

let animObj = {
  browRotateZ: -0.1,
  browTranslateY: STROKE,
  burgerRotateX: 0,
  burgerRotateZ: 0,
  burgerTranslateX: 0,
  burgerTranslateZ: 0,
  leftArmRotateX: 3.75,
  leftArmTranslateY: 0,
  leftForeArmRotateX: 1.5,
  rightArmRotateX: -3,
  rightArmTranslateY: 0,
  rightForeArmRotateX: 1.5,
}

let scene = new Zdog.Anchor({
  rotate: { 
    x: 1.5,
    z: -0.5
  }
});

// ----- burger ----- //

let burger = new Zdog.Anchor({
  addTo: scene,
})

let patty = new Zdog.Cylinder({
  addTo: burger,
  color: COLORS.patty,
  diameter: DIAMETER + HALFSTROKE,
  fill: true,
  length: LENGTH,
  stroke: STROKE,
});

let cheese = new Zdog.Rect({
  addTo: patty,
  color: COLORS.cheese,
  fill: true,
  height: DIAMETER - STROKE,
  stroke: STROKE,
  width: DIAMETER - STROKE,
  rotate: { z: TAU / 3 },
  translate: { z: LENGTH }
});

let tomato = new Zdog.Cylinder({
  addTo: cheese,
  color: COLORS.tomato,
  diameter: DIAMETER - HALFSTROKE,
  fill: true,
  length: LENGTH / 2,
  stroke: false,
  translate: { z: STROKE }
});

let bun = new Zdog.Hemisphere({
  addTo: burger,
  color: COLORS.bun,
  diameter: DIAMETER,
  stroke: STROKE,
  translate: { z: (STROKE * 4) }
});

let bottom = new Zdog.Cylinder({
  addTo: burger,
  color: COLORS.bun,
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0