sample.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. // import * as Three from "three";
  2. import Three from "three";
  3. // import { OctahedronGeometry } from "three";
  4. import path from "path";
  5. import { OrbitControls } from "three-orbitcontrols-ts";
  6. //import router from "./router.vue";
  7. import i18n from "../i18n";
  8. import router from ".。/router.js";
  9. import ElementPlus from 'element-plus';
  10. import 'element-plus/dist/index.css';
  11. import 'animate.css';
  12. //console.log(createApp);
  13. //console.log(i18n);
  14. console.log(router);
  15. const app=createApp({
  16. template:'#app',
  17. // template:`<div v-html='info'>template</div>`,
  18. components:{
  19. Home,
  20. },
  21. data(){
  22. return{
  23. info:`<span style='color:red; font-size:30px'>hello vue template</span>`,
  24. number:0,
  25. locale:null,
  26. }
  27. },
  28. methods:{
  29. },
  30. setup(){
  31. console.log("Threejs modele");
  32. // const scene=new Three.Scene();
  33. // const camera=new Three.PerspectiveCamera();
  34. // const odemetry=new OctahedronGeometry();
  35. // document.body.append(new Element(`<h1>index.js</h1>`))
  36. var canvas=document.getElementById("canvas");
  37. canvas.width=window.innerWidth;
  38. canvas.heigt=window.innerHeight;
  39. var gl=canvas.getContext("webgl");
  40. gl.viewport(0,0,canvas.width,canvas.heigt);
  41. console.log("Three",Three);
  42. const scene=new Three.Scene();
  43. const camera=new Three.PerspectiveCamera(
  44. 75,
  45. window.innerWidth/window.innerHeight,
  46. 0.1,
  47. 1000
  48. );
  49. camera.position.set(0,0,10);
  50. scene.add(camera);
  51. const geometry = new Three.BoxGeometry( 1, 3, 2 );
  52. const material = new Three.MeshBasicMaterial( {color: 0xffffff} );
  53. const cube = new Three.Mesh( geometry, material );
  54. scene.add( cube );
  55. console.log("cube",cube);
  56. console.log("cube.position",cube.position);
  57. const geometry_buffer=new Three.BufferGeometry();
  58. const vertices=new Float32Array([
  59. -1.0,-1.0,1.0,
  60. 1.0,-1.0,1.0,
  61. 1.0,1.0,1.0,
  62. 1.0,1.0,1.0
  63. -1.0,1.0,1.0,
  64. -1.0,-1.0,1.0
  65. ]);
  66. geometry_buffer.setAttribute("position",new Three.BufferAttribute(vertices,3));
  67. const material_buffer=new Three.MeshBasicMaterial({color: 0xffff00});
  68. const geometry_buffer_mesh=new Three.Mesh(geometry_buffer,material_buffer);
  69. scene.add(geometry_buffer_mesh);
  70. geometry_buffer_mesh.position.set(-10,-2,0);
  71. // geometry_buffer_mesh.position.x=-10;
  72. // geometry_buffer_mesh.position.y=-2;
  73. const cube_geometry=new Three.BoxGeometry(2,2,2);
  74. const textureloader=new Three.TextureLoader();
  75. path.resolve(path.dirname.toString());
  76. console.log("path",path);
  77. const texture_object=textureloader.load("../media/texture/shazi.png");
  78. const textureLoader = new Three.TextureLoader();
  79. const textureFlare0 = textureLoader.load( "../media//texture/envolope.jpg" );
  80. console.log("textureFlare0",texture_object);
  81. const basic_material=new Three.MeshBasicMaterial({
  82. // color:0xf012f0,
  83. map:texture_object,
  84. });
  85. const cube_geometry_object=new Three.Mesh(cube_geometry,basic_material);
  86. scene.add(cube_geometry_object);
  87. cube_geometry_object.position.set(8,-3,0);
  88. const renderer=new Three.WebGLRenderer();
  89. renderer.setSize(window.innerWidth*0.95,window.innerHeight*0.95);
  90. window.addEventListener("resize",(EventTarget)=>{
  91. console.log("resize_______________");
  92. camera.aspect=window.innerWidth*0.95,window.innerHeight*0.95;
  93. camera.updateProjectionMatrix();
  94. renderer.setSize(window.innerWidth*0.95,window.innerHeight*0.95);
  95. renderer.setPixelRatio(window.devicePixelRatio);
  96. });
  97. const controls=new OrbitControls(camera,renderer.domElement);
  98. controls.enableDamping=true;
  99. // renderer.render(scene,camera);
  100. let rare_positionx= cube.position.x-2;
  101. let rare_positiony= cube.position.y-2;
  102. let step=0.02, range=400,mark=0;
  103. function render_each_second(){
  104. // renderer.render(scene,camera);
  105. controls.update();
  106. if(mark<= range){
  107. cube.position.x+=step;
  108. cube.position.y+=step;
  109. cube.rotateZ(0.02);
  110. cube.rotateY(0.015);
  111. cube_geometry_object.rotateX(0.01);
  112. cube_geometry_object.rotateY(0.01);
  113. cube_geometry_object.rotateZ(0.01);
  114. geometry_buffer_mesh.rotateY(0.05);
  115. mark=mark + 1;
  116. }else{
  117. // cube.position.x=(step*range);
  118. cube.position.x=(rare_positionx);
  119. cube.position.y=(rare_positiony);
  120. mark=0;
  121. }
  122. // (times < n)?cube.position.x+=times:cube.position.x=rare_position;
  123. // console.log("cube.position",cube.position);
  124. renderer.render(scene,camera);
  125. requestAnimationFrame(render_each_second);
  126. };
  127. render_each_second();
  128. console.log("renderer",renderer);
  129. document.body.appendChild(renderer.domElement);
  130. // import {OrbitControls} from 'three';//three/examples/jsm/controls/OrbitControls
  131. // import { OrbitControls } from "three/addons/controls/OrbitControls.js";
  132. // import { OrbitControls } from "three-orbitcontrols-ts";
  133. // const controls=new Three.OrbitControls(camera,renderer.domElement);
  134. // import { OrbitControls } from 'three-orbitcontrols-ts';
  135. // const controls=new Three.OrbitControls(camera,renderer.domElement);
  136. // const controls=new OrbitControls(camera,renderer.domElement);
  137. // setTimeout(() => {
  138. // console.log("cube.position",cube.position);
  139. // cube.position.set(10,1000,500);
  140. // console.log("cube.position",cube.position);
  141. // }, 1500);
  142. }
  143. }).use(i18n).use(router).use(ElementPlus).mount("#app");
  144. //Vue.createApp(app).mount("#app");