vue项目渲染pcd点云图(3d效果)

2,106 阅读1分钟

技术选型,使用three.js

首先是要把three.js集成到vue项目中。将项目中用到的第三方库引入 我选择的是将其放在public目录下的index.html中,使用相对路径引入!(一定要把这几个js放在public目录下,不要放在src下,不然会报错。)

话不多说了,上码。

<template>
  <div class="cloud-box" >
    <div id="container">
      </div>
  </div>
  
</template>

<script>
export default {
  data() {
    return {
      loading:false,
      camera: null,
      scene: null,
      renderer: null,
      mesh: null,
      renderer: null,
      light: null,
      cloud: null,
      stats: null,
      controls: null,
      gui: null,
      cloudList:[
        [8.937623e+00, 8.046770e-01, 8.718993e+00],
       [3.870542e+00, 2.344582e+00, 5.528058e+00],
       [4.973743e+00, 6.251506e+00, 4.769484e+00],
       [3.574076e+00, 5.613001e+00, 8.145231e+00],
       [4.817720e-01, 8.920369e+00, 6.994899e+00],
       [3.915466e+00, 8.523287e+00, 5.093424e+00],
       [9.598087e+00, 6.219120e-01, 7.165774e+00],
       [7.949342e+00, 1.969374e+00, 8.824837e+00],
       [8.131774e+00, 1.977010e-01, 2.584920e+00],
       [4.576293e+00, 3.846148e+00, 1.373490e+00],
       [3.216000e-03, 8.763286e+00, 2.507579e+00],
       [9.481077e+00, 2.650002e+00, 5.001554e+00],
       [6.595684e+00, 1.050923e+00, 8.120172e+00],
       [5.142327e+00, 5.336006e+00, 8.620918e+00],
       [5.375882e+00, 6.651497e+00, 9.542640e+00],
       [5.682150e-01, 8.144860e-01, 8.846073e+00],
       [2.403259e+00, 6.137850e+00, 7.686553e+00],
       [7.525500e-01, 8.769059e+00, 5.274292e+00],
       [9.997763e+00, 1.192040e+00, 5.470743e+00],
       [8.675432e+00, 4.583000e-01, 9.948437e+00],
       [8.758368e+00, 3.455375e+00, 6.321480e+00],
       [2.695132e+00, 1.225212e+00, 5.009805e+00],
       [8.208597e+00, 2.368711e+00, 7.013064e+00],
       [8.094555e+00, 1.898424e+00, 4.206342e+00],
       [7.530836e+00, 2.277964e+00, 3.610314e+00],
       [5.015699e+00, 5.373408e+00, 4.440926e+00],
       [8.095015e+00, 9.589836e+00, 1.021775e+00],
       [7.829163e+00, 5.221661e+00, 4.828796e+00],
       [4.642702e+00, 7.778930e+00, 1.704286e+00],
       [4.976676e+00, 2.103161e+00, 3.146690e-01],
       [6.353577e+00, 7.029209e+00, 9.573775e+00],
       [1.446574e+00, 6.711126e+00, 5.101162e+00],
       [4.914391e+00, 5.947490e-01, 3.027910e+00],
       [7.147770e-01, 8.060196e+00, 1.617560e+00],
       [2.866511e+00, 9.455430e-01, 4.517860e+00],
       [7.181262e+00, 1.819698e+00, 9.094122e+00],
       [3.371798e+00, 2.408947e+00, 9.967757e+00],
       [3.223171e+00, 9.709138e+00, 6.304293e+00],
       [2.841408e+00, 8.599998e+00, 9.948230e+00],
       [9.092040e+00, 5.424149e+00, 8.019422e+00],
       [4.632349e+00, 8.315080e-01, 2.125520e-01],
       [2.612282e+00, 2.446450e-01, 6.177096e+00],
       [6.292571e+00, 7.230723e+00, 1.621264e+00],
       [1.723380e+00, 2.313165e+00, 4.111129e+00],
       [1.394039e+00, 2.279076e+00, 2.823773e+00],
       [5.612747e+00, 8.566734e+00, 9.748038e+00],
       [4.865773e+00, 7.301950e-01, 4.409020e-01],
       [6.588122e+00, 8.662491e+00, 6.239435e+00],
       [3.962326e+00, 4.554531e+00, 2.178757e+00],
       [5.615592e+00, 5.354481e+00, 3.132585e+00],
       [8.878875e+00, 5.315342e+00, 7.394840e+00],
       [3.728078e+00, 5.254661e+00, 6.660611e+00],
       [4.003135e+00, 8.523586e+00, 5.961165e+00],
       [8.896950e-01, 1.654930e+00, 9.242040e-01],
       [5.208152e+00, 9.540407e+00, 9.850191e+00],
       [9.837534e+00, 4.579998e+00, 6.662892e+00],
       [6.218625e+00, 3.070169e+00, 5.249364e+00],
       [3.816914e+00, 9.044073e+00, 1.508310e-01],
       [8.174381e+00, 7.564415e+00, 9.804860e-01],
       [4.347800e+00, 8.157415e+00, 3.957854e+00],
       [8.125823e+00, 9.671902e+00, 3.093795e+00],
       [7.454931e+00, 4.254792e+00, 6.061724e+00],
       [1.086816e+00, 8.997506e+00, 5.457259e+00],
       [8.844430e-01, 9.860342e+00, 9.017020e-01],
       [7.428308e+00, 8.982710e-01, 5.618361e+00],
       [8.665882e+00, 6.185970e-01, 8.583546e+00],
       [9.159264e+00, 5.417113e+00, 3.027484e+00],
       [5.518218e+00, 4.497750e+00, 4.990699e+00],
       [4.026341e+00, 4.425970e+00, 7.347162e+00],
       [9.201311e+00, 6.246129e+00, 5.908720e+00],
       [2.962370e-01, 8.154703e+00, 4.836615e+00],
       [1.218188e+00, 4.988106e+00, 9.068979e+00],
       [6.656234e+00, 9.705330e+00, 8.927538e+00],
       [4.019670e+00, 5.447955e+00, 9.841839e+00],
       [5.863128e+00, 7.451625e+00, 9.587220e-01],
       [4.890589e+00, 1.422080e-01, 3.292652e+00],
       [9.182260e+00, 6.476260e+00, 2.392570e+00],
       [5.431740e+00, 7.841649e+00, 1.839691e+00],
       [8.870447e+00, 1.784597e+00, 2.376711e+00],
       [2.545852e+00, 9.057905e+00, 3.145445e+00],
       [6.488495e+00, 3.785716e+00, 9.147642e+00],
       [7.045518e+00, 9.376729e+00, 6.932512e+00],
       [6.344158e+00, 2.709681e+00, 5.874283e+00],
       [1.689481e+00, 1.349439e+00, 5.436871e+00],
       [3.267080e-01, 3.421456e+00, 6.941896e+00],
       [4.177236e+00, 8.307860e+00, 7.182713e+00],
       [5.203497e+00, 9.630248e+00, 1.800388e+00],
       [8.309053e+00, 5.535076e+00, 4.872594e+00],
       [5.549603e+00, 1.188293e+00, 1.904373e+00],
       [6.854564e+00, 4.693081e+00, 2.509125e+00],
       [1.653228e+00, 8.161664e+00, 6.131900e+00],
       [3.304351e+00, 8.722766e+00, 8.832926e+00],
       [4.677735e+00, 7.787949e+00, 6.558549e+00],
       [6.867583e+00, 5.399194e+00, 3.750432e+00],
       [3.444577e+00, 3.626681e+00, 7.499466e+00],
       [7.022722e+00, 4.672923e+00, 9.961766e+00],
       [4.721056e+00, 1.721160e+00, 1.216993e+00],
       [3.246858e+00, 3.774722e+00, 7.201654e+00],
       [8.510020e-01, 6.797768e+00, 4.018755e+00],
       [2.350690e+00, 5.714195e+00, 5.814256e+00],
       [7.418179e+00, 3.498039e+00, 3.688610e+00],
       [8.621971e+00, 8.603200e+00, 6.470653e+00],
       [3.924556e+00, 4.928140e-01, 1.611921e+00],
       [9.825290e-01, 6.504678e+00, 5.127274e+00],
       [4.153364e+00, 4.408760e-01, 8.270636e+00],
       [4.029416e+00, 2.956976e+00, 3.349510e-01],
       [3.111522e+00, 2.370963e+00, 9.000900e-01],
       [6.399424e+00, 2.366151e+00, 1.493200e-02],
       [1.727438e+00, 3.643660e-01, 8.289504e+00],
       [6.643050e+00, 1.605077e+00, 2.755887e+00],
       [6.389639e+00, 1.808871e+00, 3.062718e+00],
       [2.285887e+00, 4.571658e+00, 6.692474e+00],
       [9.771278e+00, 3.311000e-01, 8.182852e+00],
       [8.282721e+00, 7.946050e+00, 9.986610e+00],
       [3.947341e+00, 6.172961e+00, 9.362555e+00],
       [1.247060e-01, 8.779290e-01, 4.495341e+00],
       [6.269551e+00, 4.693211e+00, 9.004411e+00],
       [6.876749e+00, 8.530733e+00, 1.492005e+00],
       [5.996056e+00, 3.933842e+00, 9.571101e+00],
       [6.456032e+00, 7.080350e+00, 5.537285e+00],
       [6.830991e+00, 2.146173e+00, 9.973992e+00],
       [7.144802e+00, 6.242664e+00, 4.185474e+00],
       [6.399177e+00, 6.761693e+00, 4.287102e+00],
       [1.292227e+00, 6.373855e+00, 3.785510e-01],
       [4.319137e+00, 5.535165e+00, 9.198694e+00],
       [8.636819e+00, 2.095370e-01, 1.987159e+00],
       [5.857169e+00, 7.353779e+00, 2.825994e+00],
       [1.801758e+00, 7.406671e+00, 6.728353e+00],
       [6.832801e+00, 7.091379e+00, 2.540438e+00],
       [9.524925e+00, 8.338713e+00, 9.801981e+00],
       [1.883549e+00, 9.689872e+00, 4.088880e+00],
       [5.006200e-02, 7.896587e+00, 8.909047e+00],
       [7.182117e+00, 1.802944e+00, 1.309554e+00],
       [9.925125e+00, 9.007093e+00, 6.706758e+00],
       [9.115590e+00, 2.418274e+00, 7.529635e+00],
       [7.854713e+00, 7.564001e+00, 5.279525e+00],
       [9.546485e+00, 6.421230e-01, 7.520320e+00],
       [4.489797e+00, 8.051413e+00, 2.705233e+00],
       [9.852256e+00, 1.379570e+00, 4.675340e+00],
       [7.792819e+00, 1.991904e+00, 8.561015e+00],
       [9.126688e+00, 9.229635e+00, 8.496719e+00],
       [2.487246e+00, 2.571825e+00, 2.313804e+00],
       [9.446998e+00, 1.339484e+00, 6.857087e+00],
       [3.173509e+00, 2.628849e+00, 2.790054e+00],
       [1.585040e+00, 7.086720e+00, 5.461052e+00],
       [3.809817e+00, 4.625017e+00, 6.422359e+00],
       [6.595098e+00, 6.650641e+00, 7.222098e+00],
       [5.176677e+00, 4.461930e-01, 7.936982e+00],
       [3.806250e+00, 2.613328e+00, 8.816640e+00],
       [4.340979e+00, 9.523020e-01, 5.286670e+00],
       [7.666535e+00, 3.738099e+00, 9.605948e+00],
       [7.546273e+00, 7.870585e+00, 2.607706e+00],
       [1.153303e+00, 1.968227e+00, 7.100474e+00],
       [5.556105e+00, 4.920864e+00, 4.378215e+00],
       [2.391296e+00, 4.865525e+00, 1.741502e+00],
       [3.199675e+00, 6.018706e+00, 4.072664e+00],
       [4.604673e+00, 6.938012e+00, 6.368285e+00],
       [4.193062e+00, 2.724011e+00, 2.177583e+00],
       [4.224740e+00, 2.935634e+00, 3.354440e-01],
       [3.381392e+00, 7.690265e+00, 5.369294e+00],
       [1.319789e+00, 9.171996e+00, 2.056487e+00],
       [3.044005e+00, 2.056162e+00, 6.128220e-01],
       [6.261903e+00, 5.115340e+00, 3.526011e+00],
       [3.942342e+00, 7.337828e+00, 1.274700e-02],
       [1.786721e+00, 8.121078e+00, 1.627598e+00],
       [5.148219e+00, 9.486275e+00, 2.396740e-01],
       [2.273770e+00, 2.870868e+00, 2.112671e+00],
       [2.948620e+00, 6.610496e+00, 3.883792e+00],
       [6.916928e+00, 5.809792e+00, 2.111218e+00],
       [7.931860e-01, 3.956540e+00, 6.774942e+00],
       [6.753290e-01, 2.148949e+00, 6.639554e+00],
       [2.684885e+00, 8.618510e+00, 3.662181e+00],
       [1.258980e+00, 8.078197e+00, 5.856601e+00],
       [1.705840e-01, 1.152324e+00, 3.005264e+00],
       [7.160219e+00, 5.274170e-01, 6.794117e+00],
       [4.630248e+00, 4.812730e-01, 9.100556e+00],
       [1.461287e+00, 5.292343e+00, 8.444374e+00],
       [7.398901e+00, 2.085707e+00, 3.977072e+00],
       [9.592857e+00, 9.203092e+00, 4.781422e+00],
       [8.978315e+00, 4.529462e+00, 8.623894e+00],
       [7.510032e+00, 6.505500e+00, 3.653800e+00],
       [2.820106e+00, 9.234193e+00, 3.791453e+00],
       [6.592009e+00, 3.689518e+00, 3.811201e+00],
       [6.406298e+00, 6.703030e+00, 8.592986e+00],
       [9.337920e-01, 4.217886e+00, 3.316665e+00],
       [1.048613e+00, 2.468652e+00, 4.694770e-01],
       [5.020160e-01, 5.688938e+00, 2.445680e-01],
       [1.151549e+00, 4.056827e+00, 6.725670e+00],
       [2.717040e+00, 8.275323e+00, 4.434253e+00],
       [9.699745e+00, 4.753104e+00, 8.696990e-01],
       [4.680016e+00, 9.444547e+00, 7.254464e+00],
       [3.947246e+00, 5.152560e-01, 6.759826e+00],
       [2.880040e+00, 5.973776e+00, 4.118790e+00],
       [1.584310e-01, 3.453137e+00, 9.321323e+00],
       [1.436281e+00, 1.921669e+00, 1.871018e+00],
       [9.890113e+00, 8.313421e+00, 6.758314e+00],
       [2.751703e+00, 5.225926e+00, 9.482317e+00],
       [4.185057e+00, 8.990138e+00, 4.863126e+00],
       [1.786568e+00, 2.076020e-01, 8.863377e+00],
       [4.912850e+00, 6.987334e+00, 9.156465e+00],
       [2.332094e+00, 9.584630e+00, 7.379820e-01],
       [9.271080e+00, 3.110026e+00, 4.188026e+00],
       [9.338156e+00, 7.521602e+00, 8.111019e+00],
       [3.458613e+00, 6.172175e+00, 1.880046e+00],
       [4.171192e+00, 6.968060e+00, 5.642492e+00],
       [4.283277e+00, 7.747693e+00, 6.863443e+00],
       [4.269952e+00, 2.761660e+00, 8.578028e+00],
       [9.116128e+00, 5.548578e+00, 3.893623e+00],
       [1.606736e+00, 4.148018e+00, 4.341892e+00],
       [3.528116e+00, 8.961832e+00, 9.022808e+00],
       [9.904930e-01, 4.500161e+00, 6.905156e+00],
       [8.558426e+00, 9.882167e+00, 8.349841e+00],
       [5.269530e+00, 5.944525e+00, 9.144475e+00],
       [4.290124e+00, 1.373290e-01, 1.453176e+00],
       [1.588639e+00, 7.803918e+00, 4.494874e+00],
       [5.970688e+00, 2.966499e+00, 4.682400e-02],
       [1.230749e+00, 1.783181e+00, 8.360216e+00],
       [6.422578e+00, 8.754053e+00, 7.000626e+00],
       [3.672247e+00, 2.432689e+00, 8.455162e+00],
       [8.335504e+00, 7.560245e+00, 5.746767e+00],
       [1.864351e+00, 3.603537e+00, 2.303008e+00],
       [2.455523e+00, 9.885570e+00, 6.452300e-02],
       [6.977832e+00, 5.206121e+00, 3.790033e+00],
       [9.621830e-01, 3.644330e-01, 2.095048e+00],
       [1.285781e+00, 8.789020e-01, 8.334286e+00],
       [6.678773e+00, 7.067999e+00, 7.651129e+00],
       [4.782913e+00, 7.209907e+00, 9.920318e+00],
       [6.872400e-02, 2.758561e+00, 2.215069e+00],
       [6.238725e+00, 1.172612e+00, 7.637450e+00],
       [1.135713e+00, 6.035576e+00, 5.841146e+00],
       [7.710982e+00, 2.497553e+00, 7.874342e+00],
       [2.523879e+00, 4.139691e+00, 9.409998e+00],
       [5.593621e+00, 3.484980e+00, 3.220026e+00],
       [3.918696e+00, 7.259124e+00, 8.376758e+00],
       [4.639178e+00, 5.821189e+00, 2.532935e+00],
       [9.987194e+00, 4.446093e+00, 8.227385e+00],
       [4.728134e+00, 8.851552e+00, 1.039187e+00],
       [6.428396e+00, 6.417362e+00, 4.342655e+00],
       [5.918782e+00, 5.265705e+00, 9.722771e+00],
       [3.266229e+00, 4.327696e+00, 8.068838e+00],
       [1.841601e+00, 3.288857e+00, 1.000745e+00],
       [7.910850e+00, 9.407298e+00, 3.088427e+00],
       [6.457492e+00, 2.676926e+00, 2.158018e+00],
       [7.228991e+00, 5.648259e+00, 3.274099e+00],
       [2.784607e+00, 8.772675e+00, 6.330128e+00],
       [4.514339e+00, 1.563876e+00, 8.926570e+00],
       [9.745102e+00, 3.586219e+00, 4.978379e+00],
       [7.458375e+00, 9.686521e+00, 2.089874e+00],
       [6.821333e+00, 2.845870e-01, 8.308698e+00],
       [3.529215e+00, 9.815544e+00, 1.282639e+00],
       [7.831127e+00, 4.792766e+00, 3.787969e+00],
       [9.928971e+00, 7.285398e+00, 5.960960e-01],
       [7.971483e+00, 1.705026e+00, 5.407695e+00],
       [6.554788e+00, 9.401537e+00, 5.532065e+00],
       [5.783408e+00, 5.710634e+00, 6.889784e+00],
       [7.912413e+00, 7.576357e+00, 5.687205e+00],
       [8.178494e+00, 9.833452e+00, 6.049759e+00],
       [7.763163e+00, 2.283525e+00, 2.425953e+00],
       [4.395595e+00, 3.740233e+00, 3.670106e+00],
       [1.645465e+00, 5.454685e+00, 9.460601e+00],
       [1.299217e+00, 8.272650e-01, 3.098952e+00],
       [9.389157e+00, 5.154321e+00, 7.366634e+00],
       [7.272356e+00, 9.437896e+00, 4.603324e+00],
       [4.305743e+00, 8.079720e-01, 8.399395e+00],
       [1.046060e+00, 6.320302e+00, 1.367178e+00],
       [2.741534e+00, 4.048675e+00, 6.268790e-01],
       [5.326128e+00, 9.619972e+00, 9.845418e+00],
       [7.273368e+00, 9.090446e+00, 1.915118e+00],
       [6.708002e+00, 1.248164e+00, 7.182165e+00],
       [6.845215e+00, 9.293703e+00, 2.042452e+00],
       [8.774479e+00, 4.543841e+00, 3.745983e+00],
       [5.792873e+00, 7.360192e+00, 9.411006e+00],
       [6.078663e+00, 2.655399e+00, 1.090863e+00],
       [8.704803e+00, 7.711533e+00, 5.464788e+00],
       [9.327181e+00, 7.627738e+00, 2.861713e+00],
       [1.206642e+00, 1.440617e+00, 4.564753e+00],
       [6.721271e+00, 8.149313e+00, 4.006449e+00],
       [9.779108e+00, 4.542412e+00, 1.375111e+00],
       [3.012060e+00, 7.764482e+00, 9.791345e+00],
       [8.849057e+00, 6.706400e-02, 2.245042e+00],
       [4.641676e+00, 1.191287e+00, 5.212297e+00],
       [8.215744e+00, 5.037779e+00, 1.893523e+00],
       [4.014227e+00, 3.474169e+00, 2.256413e+00],
       [7.423327e+00, 5.429181e+00, 1.018503e+00],
       [3.270990e+00, 6.220683e+00, 4.793709e+00],
       [4.339520e+00, 9.444682e+00, 4.752635e+00],
       [8.410100e-02, 1.568799e+00, 8.709587e+00],
       [9.903556e+00, 9.207443e+00, 7.253360e+00],
       [8.932547e+00, 9.692587e+00, 5.518210e-01],
       [7.572236e+00, 5.613715e+00, 5.215671e+00],
       [7.391250e-01, 6.827555e+00, 9.957585e+00],
       [1.912670e+00, 2.679070e+00, 4.655930e-01],
       [4.594620e-01, 2.514142e+00, 7.732078e+00],
       [4.282642e+00, 5.006284e+00, 5.422165e+00],
       [8.567030e-01, 4.225491e+00, 9.603790e-01],
       [7.209654e+00, 4.973755e+00, 6.072495e+00],
       [9.355765e+00, 7.281113e+00, 8.972812e+00],
       [5.135640e+00, 8.824425e+00, 3.725360e-01],
       [2.996820e+00, 3.311730e+00, 4.982395e+00],
       [4.344549e+00, 3.458179e+00, 4.036735e+00],
       [1.956203e+00, 2.802838e+00, 4.356983e+00],
       [2.756790e+00, 3.913305e+00, 7.012813e+00],
       [2.957039e+00, 3.759557e+00, 5.146119e+00],
       [6.634439e+00, 6.186801e+00, 3.643969e+00],
       [6.968970e+00, 4.331380e-01, 7.027446e+00],
       [1.024605e+00, 1.991704e+00, 6.625653e+00],
       [6.426265e+00, 2.429190e+00, 4.435979e+00],
       [3.047740e-01, 9.139531e+00, 4.097801e+00],
       [5.336377e+00, 5.817646e+00, 1.183992e+00],
       [4.557438e+00, 9.065154e+00, 6.227092e+00],
       [2.144116e+00, 2.183258e+00, 4.097053e+00],
       [4.999913e+00, 9.996740e+00, 6.994273e+00],
       [9.738746e+00, 8.380182e+00, 1.780022e+00],
       [8.650741e+00, 1.032535e+00, 5.389427e+00],
       [4.824927e+00, 5.616510e+00, 8.130526e+00],
       [3.622374e+00, 3.349066e+00, 5.960326e+00],
       [8.406801e+00, 2.380557e+00, 5.608124e+00],
       [3.631897e+00, 5.442482e+00, 1.403876e+00],
       [1.148819e+00, 4.057004e+00, 3.664660e+00],
       [7.653468e+00, 7.589400e+00, 6.724528e+00],
       [7.724449e+00, 4.527112e+00, 8.309925e+00],
       [6.365736e+00, 1.845895e+00, 7.039303e+00],
       [1.055770e-01, 8.639706e+00, 4.456155e+00],
       [3.067257e+00, 3.847242e+00, 3.331334e+00],
       [3.221220e+00, 5.654328e+00, 3.603909e+00],
       [9.962524e+00, 1.103346e+00, 4.487771e+00],
       [1.694477e+00, 6.514275e+00, 7.963538e+00],
       [8.446293e+00, 5.282326e+00, 8.919725e+00]
       ],
    };
  },
  props:{
    showScore: {
      type: Boolean,
      default: true
    },
    cloudListItem: {
      type: Array
    }
  },
  mounted() {
    if(this.cloudListItem && this.cloudListItem.length > 0) {
      this.cloudList = this.cloudListItem
    } 
      this.draw()
  },
  methods: {
    //设置背景颜色
    initRender() {
      this.renderer = new THREE.WebGLRenderer({ antialias: true });
      console.log(this.renderer.domElement,'this.renderer.domElement');
      // this.renderer.setClearColor(new THREE.Color(0xEEEEEE, 1.0)); //设置背景颜色
      this.renderer.setSize(window.innerWidth, window.innerHeight);
      // this.renderer.setSize(window.clientWidth, window.clientHeight);
      // this.renderer.setSize('1100','600');
      let con = document.getElementById("container");
      con.appendChild(this.renderer.domElement);
    },
    // 创建相机
    initCamera() {
      this.camera = new THREE.PerspectiveCamera(
        45,
        window.innerWidth / window.innerHeight,
        1,
        10000
      );
      this.camera.position.set(0, 0, 200);
    },
    // scene
    initScene() {
      this.scene = new THREE.Scene();
    },
    // light
    initLight() {
      this.scene.add(new THREE.AmbientLight(0x404040));
      this.light = new THREE.DirectionalLight(0xffffff);
      this.light.position.set(1, 1, 1);
      this.scene.add(this.light);
    },
    initModel() {
        //轴辅助 (每一个轴的长度)
        // var object = new THREE.AxesHelper(500);
        // this.scene.add(object);
        //创建THREE.PointCloud粒子的容器
        var geometry = new THREE.Geometry();
        //创建THREE.PointCloud纹理
        var material = new THREE.PointCloudMaterial({size: 0.001, vertexColors: true, color: 0xffffff});
        //循环将粒子的颜色和位置添加到网格当中
        for (var x = -5; x <= 5; x++) {
            for (var y = -5; y <= 5; y++) {
                var particle = new THREE.Vector3(x * 10, y * 10, 0);
                geometry.vertices.push(particle);
                geometry.colors.push(new THREE.Color( +this.randomColor()));
            }
        }
        this.cloud = new THREE.PointCloud(geometry, material);
        this.scene.add(this.cloud);

    },
    //随机生成颜色
    /*
    此处背景色为黑色 所以点的颜色选择是比较明显的白色,
    底下代码打开的话 有惊喜效果
    */
    randomColor() {
      // var arrHex = [
      //     "0",
      //     "1",
      //     "2",
      //     "3",
      //     "4",
      //     "5",
      //     "6",
      //     "7",
      //     "8",
      //     "9",
      //     "a",
      //     "b",
      //     "c",
      //     "d",
      //     "e",
      //     "f",
      //   ],
      //   strHex = "0x",
      //   index;
      // for (var i = 0; i < 6; i++) {
      //   index = Math.round(Math.random() * 15);
      //   strHex += arrHex[index];
      // }
      // console.log(strHex,'strHex');
      let strHex  = 0xFFFFFF
      return strHex;
    },
    //初始化性能插件
    initStats() { 
      this.stats = new Stats();
      let con = document.getElementById("container");
      con.appendChild(this.stats.dom);
    },
    //用户交互插件 鼠标左键按住旋转,右键按住平移,滚轮缩放
    initControls() {
      this.controls = new THREE.OrbitControls(
        this.camera,
        this.renderer.domElement
      );
      // 如果使用animate方法时,将此函数删除
      //controls.addEventListener( 'change', render );
      // 使动画循环使用时阻尼或自转 意思是否有惯性
      this.controls.enableDamping = true;
      //动态阻尼系数 就是鼠标拖拽旋转灵敏度
      this.controls.dampingFactor = 0.5;
      //是否可以缩放
      this.controls.enableZoom = true;
      //是否自动旋转
      this.controls.autoRotate = false;
      //设置相机距离原点的最远距离 20
      this.controls.minDistance = 10;
      //设置相机距离原点的最远距离 80
      this.controls.maxDistance = 50;
      //是否开启右键拖拽
      this.controls.enablePan = true;
    },
    //生成gui设置配置项
    initGui() {
      let that = this;
      //声明一个保存需求修改的相关数据的对象 0xffffff
       let gui = {
        'size': 0.2,
        'transparent': true,
        'opacity': 0.6,
        'vertexColors': true,
        'color': 0xFFFFFF,
        'sizeAttenuation': true,
        'rotateSystem': true,
        redraw() {
          if (that.cloud) {
            that.scene.remove(that.cloud);
          }
          that.createParticles(
            gui.size,
            gui.transparent,
            gui.opacity,
            gui.vertexColors,
            gui.sizeAttenuation,
            gui.color
          );
          //设置是否自动旋转
          // that.controls.autoRotate = gui.rotateSystem;
        },
      };
      var datGui = new dat.GUI();
      //将设置属性添加到gui当中,gui.add(对象,属性,最小值,最大值)gui.add(controls, 'size', 0, 10).onChange(controls.redraw);
      datGui.add(gui, "transparent").onChange(gui.redraw);
      datGui.add(gui, "opacity", 0, 1).onChange(gui.redraw);
      datGui.add(gui, "vertexColors").onChange(gui.redraw);
      datGui.addColor(gui, "color").onChange(gui.redraw);
      datGui.add(gui, "sizeAttenuation").onChange(gui.redraw);
      datGui.add(gui, "rotateSystem").onChange(gui.redraw);
      gui.redraw();
    },
    // 生成粒子的方法
    createParticles(size, transparent, opacity, vertexColors, sizeAttenuation, color) {
        //存放粒子数据的网格
        var geom = new THREE.Geometry();
        //样式化粒子的THREE.PointCloudMaterial材质
        var material = new THREE.PointCloudMaterial({
            size: size,
            transparent: transparent,
            opacity: opacity,
            vertexColors: vertexColors,
            sizeAttenuation: sizeAttenuation,
            color: color
        });
         console.log(this.cloudList.length,'this.cloudList.length');
         for (let i = 0; i < this.cloudList.length; i++) {
            var particle = new THREE.Vector3(
              this.cloudList[i][0],
              this.cloudList[i][1],
              this.cloudList[i][2]
            );
            geom.vertices.push(particle);
            var color = new THREE.Color(+this.randomColor());
            //.setHSL ( h, s, l ) h — 色调值在0.0和1.0之间 s — 饱和值在0.0和1.0之间 l — 亮度值在0.0和1.0之间。 使用HSL设置颜色。
            //随机当前每个粒子的亮度
            color.setHSL(color.getHSL().h, color.getHSL().s, 1.0);
            geom.colors.push(color);
        }
        //生成模型,添加到场景当中
        this.cloud = new THREE.PointCloud(geom, material);
        this.scene.add(this.cloud);
    },
    render() {
      this.renderer.render(this.scene, this.camera);
    },
    //窗口变动触发的函数
    onWindowResize() {
      this.camera.aspect = window.innerWidth / window.innerHeight;
      this.camera.updateProjectionMatrix();
      this.render();
      this.renderer.setSize(window.innerWidth, window.innerHeight);
    },
    animate() {
      //更新控制器
      this.controls.update();
      this.render();
      //更新性能插件
      this.stats.update();
      requestAnimationFrame(this.animate);
    },
    // 调用
    draw() {
      this.initRender();
      this.initScene();
      this.initCamera();
      this.initLight();
      this.initModel();
      this.initControls();
      this.initStats();
      this.initGui();
      this.animate();
      window.onresize = this.onWindowResize;
    },
  },
};
</script>

<style lang="scss" scoped>
.cloud-box {
  width: 100%;
  height: 100%;
  background-size: 100% 100%;
  .cloud-main {
    #container {
      text-align: center;
      // border:green 1px solid;  
    }
    .cloud-title {
      position: relative;
      text-align: center;
      font-size: 18px;
       .cloud-score {
         color: rgb(72, 223, 72);
				 position: absolute;
		     margin-top: 2%;
         left: 3%;
				}
    }
  }
}
</style>
`
## 后续会把项目中用到的库贴上!