Guest User

Untitled

a guest
Dec 13th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. var container, camera, scene, renderer, lines = [], items = [];
  2. var numItems = 30;
  3. var xspeed;
  4. var yspeed;
  5. var lineGeom = new THREE.Geometry();
  6. var WIDTH = window.innerWidth,
  7. HEIGHT = window.innerHeight - 75;
  8.  
  9. init();
  10. animate();
  11.  
  12. function init() {
  13.  
  14. // CAMERA, SCENE, ETC
  15.  
  16. var geometry = new THREE.CircleBufferGeometry(15, 15);
  17. var center = new THREE.Vector3();
  18. for (var i = 0; i < numItems; i++) {
  19. var item = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({
  20. color: 0x000000
  21. }));
  22. item.position.x = (Math.random()) * WIDTH / 2 - WIDTH / 4;
  23. item.position.y = (Math.random()) * HEIGHT / 2 - HEIGHT / 4;
  24. item.xspeed = (Math.random()) * 0.5 - 0.25;
  25. item.yspeed = (Math.random()) * 0.5 - 0.25;
  26. items.push(item);
  27. scene.add(item);
  28. }
  29.  
  30. for (var x = 0; x < items.length; x++) {
  31. for (var y = 0; y < items.length; y++) {
  32. var start = x;
  33. var end = x + y;
  34. var t1 = items[start].position;
  35. var t2 = items[end].position;
  36. var d = t1.distanceTo(t2);
  37. if (d <= 100) {
  38. lineGeom.vertices.push(items[x].position);
  39. lineGeom.vertices.push(items[end].position);
  40. }
  41. if (end === items.length - 1) {
  42. break;
  43. }
  44. }
  45. }
  46.  
  47. var lineMat = new THREE.LineBasicMaterial({
  48. color: 0x000000,
  49. })
  50.  
  51. line = new THREE.LineSegments(lineGeom, lineMat);
  52. line.position.z = -1;
  53. scene.add(line);
  54. }
  55.  
  56. function animate() {
  57. requestAnimationFrame(animate);
  58. render();
  59. }
  60.  
  61. function render() {
  62. items.forEach((circle) => {
  63. circle.position.x += circle.xspeed;
  64. circle.position.y += circle.yspeed;
  65.  
  66. if (circle.position.x > WIDTH / 2 || circle.position.x < -WIDTH / 2) {
  67. circle.xspeed *= -1;
  68. }
  69.  
  70. if (circle.position.y > HEIGHT / 2 || circle.position.y < -HEIGHT / 2) {
  71. circle.yspeed *= -1;
  72. }
  73. });
  74. line.geometry.verticesNeedUpdate = true;
  75. camera.position.x = 0;
  76. camera.position.z = 1000;
  77. renderer.render(scene, camera);
  78. }
Add Comment
Please, Sign In to add comment