JSDM

HTML

1
 
1

CSS

xxxxxxxxxx
3
 
1
body{
2
  background:#000;
3
}
? ?
? ?
必须是有效的URL
+ 添加另一个资源

JS

145
 
1
var container, stats;
2
var camera, scene, renderer, particles, geometry, materials = [], parameters, i, h, color;
3
var mouseX = 0, mouseY = 0;
4
5
var windowHalfX = window.innerWidth / 2;
6
var windowHalfY = window.innerHeight / 2;
7
8
init();
9
animate();
10
11
function init() {
12
13
  container = document.createElement( 'div' );
14
  document.body.appendChild( container );
15
16
  camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 3000 );
17
  camera.position.z = 1000;
18
19
  scene = new THREE.Scene();
20
  scene.fog = new THREE.FogExp2( 0x220018, 0.0007 );
21
22
  geometry = new THREE.Geometry();
23
24
  for ( i = 0; i < 50000; i ++ ) {
25
    var vertex = new THREE.Vector3();
26
    vertex.x = Math.random() * 200 - 100;
27
    vertex.y = Math.random() * 2000 - 1000;
28
    vertex.z = Math.random() * 200 - 100;
29
30
    geometry.vertices.push( vertex );
31
  }
32
33
  parameters = [
34
    [ [1, 1, 0.5], 1 ],
35
    [ [0.5, 1, 0.5], 1 ],
36
    [ [0.90, 1, 0.5], 1 ],
37
    [ [0.85, 1, 0.5], 1 ],
38
    [ [0.80, 1, 0.5], 1 ],
39
    [ [1, 1, 0.5], 1 ],
40
    [ [0.5, 1, 0.5], 1 ],
41
    [ [0.90, 1, 0.5], 1 ],
42
    [ [0.85, 1, 0.5], 1 ]
43
  ];
44
45
  for ( i = 0; i < parameters.length; i ++ ) {
46
    size  = parameters[i][1];
47
48
    materials[i] = new THREE.PointCloudMaterial( { size: size } );
49
50
    particles = new THREE.PointCloud( geometry, materials[i]);
51
52
    particles.rotation.x = Math.random() * 5
53
    particles.rotation.y = Math.random() * 5;
54
    particles.rotation.z = Math.random() * 5;
55
56
    scene.add( particles );
57
  }
58
59
  renderer = new THREE.WebGLRenderer();
60
  renderer.setSize( window.innerWidth, window.innerHeight );
61
  container.appendChild( renderer.domElement );
62
63
  document.addEventListener( 'mousemove', onDocumentMouseMove, false );
64
  document.addEventListener( 'touchstart', onDocumentTouchStart, false );
65
  document.addEventListener( 'touchmove', onDocumentTouchMove, false );
66
67
  //
68
69
  window.addEventListener( 'resize', onWindowResize, false );
70
71
}
72
73
function onWindowResize() {
74
75
  windowHalfX = window.innerWidth / 2;
76
  windowHalfY = window.innerHeight / 2;
77
78
  camera.aspect = window.innerWidth / window.innerHeight;
79
  camera.updateProjectionMatrix();
80
81
  renderer.setSize( window.innerWidth, window.innerHeight );
82
83
}
84
85
function onDocumentMouseMove( event ) {
86
87
  mouseX = event.clientX - windowHalfX;
88
  mouseY = event.clientY - windowHalfY;
89
90
}
91
92
function onDocumentTouchStart( event ) {
93
94
  if ( event.touches.length === 1 ) {
95
96
    event.preventDefault();
97
98
    mouseX = event.touches[ 0 ].pageX - windowHalfX;
99
    mouseY = event.touches[ 0 ].pageY - windowHalfY;
100
101
  }
102
103
}
104
105
function onDocumentTouchMove( event ) {
106
107
  if ( event.touches.length === 1 ) {
108
109
    event.preventDefault();
110
111
    mouseX = event.touches[ 0 ].pageX - windowHalfX;
112
    mouseY = event.touches[ 0 ].pageY - windowHalfY;
113
114
  }
115
116
}
117
118
//
119
120
function animate() {
121
122
  requestAnimationFrame( animate );
123
124
  render();
125
}
126
127
function render() {
128
  camera.position.z -= 2;
129
  camera.position.x += ( mouseX - camera.position.x ) * 1;
130
  camera.position.z += ( - mouseY - camera.position.y ) * 0.05;
131
132
133
  if(camera.position.z > 2500){
134
    camera.position.z = 2500;
135
  }
136
137
  if(camera.position.z < -2500){
138
    camera.position.z = -2500;
139
  }
140
141
  camera.lookAt( scene.position );
142
143
  renderer.render( scene, camera );
144
}
145
必须是有效的URL
+ 添加另一个资源
Close

文件管理 点击文件查看URL

图片

  1. 暂无文件

CSS

  1. 暂无文件

JavaScript

  1. 暂无文件

其他

  1. 暂无文件
拖动文件到上面的区域或者:
加载中 ..................