123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- /* eslint-disable */
- require('./three')
- var runAnimation = true
- function init(dom) {
- var SEPARATION = 80,
- AMOUNTX = 100,
- AMOUNTY = 30;
- var container, stats;
- var camera, scene, renderer;
- var particles, particle, count = 0;
- var mouseX = 0,
- mouseY = -190;
- var windowHalfX = window.innerWidth;
- var windowHalfY = 300;
- function init(container) {
- console.log(container)
- // container = $("#operaters .hero");
- camera = new THREE.PerspectiveCamera(50, window.innerWidth / 300, 10, 5000);
- camera.position.z = 900;
- scene = new THREE.Scene();
- particles = new Array();
- var PI2 = Math.PI * 2;
- var material = new THREE.SpriteCanvasMaterial({
- color: 0x696969,
- program: function (context) {
- context.beginPath();
- context.arc(0, 0, 0.5, 0, PI2, true);
- context.fill();
- }
- });
- var i = 0;
- for (var ix = 0; ix < AMOUNTX; ix++) {
- for (var iy = 0; iy < AMOUNTY; iy++) {
- particle = particles[i++] = new THREE.Sprite(material);
- particle.position.x = ix * SEPARATION - ((AMOUNTX * SEPARATION) / 2);
- particle.position.z = iy * SEPARATION - ((AMOUNTY * SEPARATION) / 2);
- scene.add(particle);
- }
- }
- renderer = new THREE.CanvasRenderer();
- renderer.setPixelRatio(window.devicePixelRatio);
- renderer.setSize(window.innerWidth, 300);
- renderer.setClearColor(0xffffff);
- container.appendChild(renderer.domElement)
- }
- function onWindowResize() {
- windowHalfX = window.innerWidth;
- windowHalfY = 300;
- camera.aspect = window.innerWidth / 300;
- camera.updateProjectionMatrix();
- renderer.setSize(window.innerWidth, 300);
- }
- function animate() {
- if (runAnimation) {
- requestAnimationFrame(animate);
- render();
- }
- }
- function render() {
- camera.position.x += (mouseX - camera.position.x) * .05;
- camera.position.y += (-mouseY - camera.position.y) * .05;
- camera.lookAt(scene.position);
- var i = 0;
- for (var ix = 0; ix < AMOUNTX; ix++) {
- for (var iy = 0; iy < AMOUNTY; iy++) {
- particle = particles[i++];
- particle.position.y = (Math.sin((ix + count) * 0.3) * 50) +
- (Math.sin((iy + count) * 0.5) * 10);
- particle.scale.x = particle.scale.y = (Math.sin((ix + count) * 0.3) + 1) * 4 +
- (Math.sin((iy + count) * 0.5) + 1) * 3;
- }
- }
- renderer.render(scene, camera);
- count += 0.1;
- }
- init(dom);
- animate();
- window.addEventListener('resize', onWindowResize)
- window.___resize = onWindowResize
- }
- export default {
- init(dom) {
- runAnimation = true;
- init(dom)
- },
- destroyed() {
- runAnimation = false;
- window.removeEventListener('resize', window.___resize)
- }
- }
- /* eslint-enable */
|