sample.js 5.5 KB

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