当前位置: 首页 > news >正文

怎么建设公司网站国外网站域名查询

怎么建设公司网站,国外网站域名查询,网站分享的功能怎么做,深圳百度推广seo公司通过自定义顶点数据#xff0c;可以创建任意的几何体。像threejs的长方体BoxGeometry、球体SphereGeometry等几何体都是基于BufferGeometry类构建的#xff0c;它表示一个没有任何形状的空几何体。 1. 自定义点模型 通过javascript 类型化数组 Float32Array创建一组xyz坐标…通过自定义顶点数据可以创建任意的几何体。像threejs的长方体BoxGeometry、球体SphereGeometry等几何体都是基于BufferGeometry类构建的它表示一个没有任何形状的空几何体。 1. 自定义点模型 通过javascript 类型化数组 Float32Array创建一组xyz坐标数据用来表示几何体的顶点坐标。每3个一组为一个坐标点。 point.ts文件 import * as THREE from three;//创建一个空的几何体对象 const geometry new THREE.BufferGeometry();//类型化数组创建顶点数据 const vertices new Float32Array([0,0,0, //顶点1坐标20,0,0, //顶点2坐标20,20,0, //顶点3坐标0,20,0, //顶点4坐标10,30,30, //顶点5坐标10,40,15, //顶点6坐标 ]);// 创建属性缓冲区对象: 3个为一组表示一个顶点的xyz坐标 const attribute new THREE.BufferAttribute(vertices, 3); geometry.attributes.position attribute; // 设置几何体attributes属性的位置属性// 点材质 const material new THREE.PointsMaterial({color: 0xffff00,size: 2.0, //点对象像素尺寸 }); const points new THREE.Points(geometry, material); // 点对象 export {points}主文件 templatediv classwrapperdiv refthreeRef/div/div /template script setup langts import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js; import { points} from ./components/points; import { onMounted, ref } from vue; const threeRef ref();onMounted(() {// 场景const scene new THREE.Scene();// 添加点进入场景scene.add(points);// 相机const camera new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight,0.1,1000);camera.position.set(50, 50, 50); // 相机位置// 渲染器const renderer new THREE.WebGLRenderer({antialias: true, // 设置锯齿属性,为了获得更好的图像质量});// 定义threejs输出画布的尺寸(单位:像素px)renderer.setSize(window.innerWidth, window.innerHeight);// 为了适应不同的硬件设备屏幕设置设备像素比renderer.setPixelRatio(window.devicePixelRatio);// 插入到任意HTML元素中threeRef.value.append(renderer.domElement);renderer.render(scene, camera);// AxesHelper辅助观察的坐标系const axesHelper new THREE.AxesHelper(50);scene.add(axesHelper);// 可拖拽查看模型const controls new OrbitControls(camera, renderer.domElement);controls.addEventListener(change, function () {renderer.render(scene, camera); //执行渲染操作});window.onresize function () {// 更新相机纵横比camera.aspect window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();// 更新渲染器的大小renderer.setSize(window.innerWidth, window.innerHeight);}; }); /script style scoped/style 2. 自定义线模型 new THREE.Line( geometry, material ); 创建一条连续的线 new THREE.LineLoop( geometry, material ); 创建环线 new THREE.LineSegments( geometry, material ); 创建线段 为了观察由哪些点生成的线保留了点模型 //创建一个空的几何体对象 const geometry new THREE.BufferGeometry();//类型化数组创建顶点数据 const vertices new Float32Array([0,0,0, //顶点1坐标20,0,0, //顶点2坐标20,20,0, //顶点3坐标0,20,0, //顶点4坐标10,30,30, //顶点5坐标10,40,15, //顶点6坐标 ]);// 创建属性缓冲区对象: 3个为一组表示一个顶点的xyz坐标 const attribute new THREE.BufferAttribute(vertices, 3); geometry.attributes.position attribute; // 设置几何体attributes属性的位置属性// 点材质 const material new THREE.PointsMaterial({color: 0xffff00,size: 2.0, //点对象像素尺寸 }); // 线材质 const material1 new THREE.LineBasicMaterial({color: 0xff0000, //线条颜色 }); const points new THREE.Points(geometry, material); // 点对象 const lines new THREE.Line(geometry, material1); // 线对象 export {pointslines } // 在主文件中引入并添加到场景中即可4. 网格模型(三角形概念) 网格模型Mesh其实就一个一个三角形(面)拼接构成。使用网格模型Mesh渲染几何体geometry就是几何体所有顶点坐标三个为一组构成一个三角形多组顶点构成多个三角形就可以用来模拟表示物体的表面。 可见性 三个顶点的顺序是【逆时针】方向该面视为【正面】 三个顶点的顺序是【顺时针】方向该面视为【反面】默认不可见 import * as THREE from three;//创建一个空的几何体对象 const geometry new THREE.BufferGeometry(); //顶点数据 const vertices new Float32Array([0, 0, 0, //顶点1坐标50, 0, 0, //顶点2坐标50,50, 0, //顶点3坐标 ]); // 创建属性缓冲区对象: 3个为一组表示一个顶点的xyz坐标 const attribute new THREE.BufferAttribute(vertices, 3); geometry.attributes.position attribute; // 设置几何体attributes属性的位置属性// 网格模型 const material new THREE.MeshBasicMaterial({color: 0xffff00, //材质颜色// side: THREE.BackSide,// 仅有反面可见side: THREE.DoubleSide, //两面可见transparent: true, // 开启透明opacity: 0.5, //透明度 }); const flat new THREE.Mesh(geometry, material); // 网格对象 export { flat };4. 自定义矩形平面 一个矩形平面可以至少通过两个三角形拼接而成而且两个三角形是紧密贴合的所以会存在两个相同的坐标点。 注意为了让两个三角形的正反面显示一致每一个三角形顶点的的顺序应该保持一致 import * as THREE from three;//创建一个空的几何体对象 const geometry new THREE.BufferGeometry(); //顶点数据 const vertices new Float32Array([0, 0, 0, //顶点1坐标80, 0, 0, //顶点2坐标80, 80, 0, //顶点3坐标0, 0, 0, //顶点4坐标 和顶点1位置相同80, 80, 0, //顶点5坐标 和顶点3位置相同0, 80, 0, //顶点6坐标 ]);// 创建属性缓冲区对象: 3个为一组表示一个顶点的xyz坐标 const attribute new THREE.BufferAttribute(vertices, 3); geometry.attributes.position attribute; // 设置几何体attributes属性的位置属性// 网格模型 const material new THREE.MeshBasicMaterial({color: 0xffff00, //材质颜色// side: THREE.BackSide,// 仅有反面可见side: THREE.DoubleSide, //两面可见transparent: true, // 开启透明opacity: 0.5, //透明度 }); const flat new THREE.Mesh(geometry, material); // 网格对象 export { flat };也可以使用几何体顶点索引数据geometry.index来实现 import * as THREE from three;//创建一个空的几何体对象 const geometry new THREE.BufferGeometry(); //顶点数据 const vertices new Float32Array([0, 0, 0, //顶点1坐标80, 0, 0, //顶点2坐标80, 80, 0, //顶点3坐标0, 80, 0, //顶点6坐标 ]);// Uint16Array类型数组创建顶点索引数据 const indexes new Uint16Array([// 下面索引值对应顶点位置数据中的顶点坐标0, 1, 2, 0, 2, 3, ]); // 索引数据赋值给几何体的index属性 geometry.index new THREE.BufferAttribute(indexes, 1); //1个为一组// 创建属性缓冲区对象: 3个为一组表示一个顶点的xyz坐标 const attribute new THREE.BufferAttribute(vertices, 3); geometry.attributes.position attribute; // 设置几何体attributes属性的位置属性// 网格模型 const material new THREE.MeshBasicMaterial({color: 0xffff00, //材质颜色// side: THREE.BackSide,// 仅有反面可见side: THREE.DoubleSide, //两面可见transparent: true, // 开启透明opacity: 0.5, //透明度 }); const flat new THREE.Mesh(geometry, material); // 网格对象 export { flat };如果将材质更换成其他受光照影响的材质比如MeshLambertMaterial,则无法正常显示平面因为受光照影响的材质需要给几何体设置顶点法线。 // 每个顶点的法线数据和顶点位置数据一一对应 const normals new Float32Array([0,0,1, //顶点1法线( 法向量 )0,0,1, //顶点2法线0,0,1, //顶点3法线0,0,1, //顶点4法线 ]); // 设置几何体的顶点法线属性.attributes.normal geometry.attributes.normal new THREE.BufferAttribute(normals, 3); // 网格模型 const material2 new THREE.MeshLambertMaterial({color: 0xffff00, //材质颜色// side: THREE.BackSide,// 仅有反面可见side: THREE.DoubleSide, //两面可见transparent: true, // 开启透明opacity: 0.5, //透明度 });在场景中添加光源 //环境光const ambientLight new THREE.AmbientLight(0xffffff, 0.4);scene.add(ambientLight);// 平行光const directionalLight new THREE.DirectionalLight(0xffffff, 1);// 设置光源的方向通过光源position属性和目标指向对象的position属性计算directionalLight.position.set(10, 15, 25);// 方向光指向对象网格模型directionalLight.target flat;5. 内置原始几何体 import * as THREE from three; // 立方体 const geometry1 new THREE.BoxGeometry(8, 8, 8); // 球体 const geometry2 new THREE.SphereGeometry(10);const material1 new THREE.MeshLambertMaterial({color: 0x00ffff,wireframe: true, //线条模式渲染mesh对应的三角形数据 }); const material2 new THREE.MeshLambertMaterial({color: 0xffffff,wireframe: true, //线条模式渲染mesh对应的三角形数据 }); const box new THREE.Mesh(geometry1, material1); const sphere new THREE.Mesh(geometry2, material2); // 位置平移 sphere.translateX(-15); box.translateX(-15);// 克隆一个box对象 const box2 box.clone(); // 克隆几何体材质并重新设置的材质和几何体属性 box2.material box.material.clone(); box2.material.color.set(0xff0000); box2.translateY(15); // 缩小尺寸 box2.scale.set(0.5, 0.5, 0.5); export { sphere, box, box2 };https://threejs.org/docs/index.html?qgeo#api/zh/geometries/BoxGeometry 添加循环动画 // 渲染循环function render() {box.rotateY(0.01); // 旋转动画sphere.rotateY(-0.01);// 同步box2和box的角度不管box姿态角度怎么变化box2始终保持同步box2.rotation.copy(box.rotation);renderer.render(scene, camera);requestAnimationFrame(render);}render();【基础】Three.js的零基础入门篇附案例代码 【基础】Three.js中添加操作面板GUI可视化调试附案例代码 【基础】Three.js加载纹理贴图、加载外部gltf格式文件
http://www.w-s-a.com/news/125484/

相关文章:

  • 网站维护与优化教程广州做网站的网络公司排名
  • 网站做贷款许可证网站改版方案模板
  • 装饰公司怎么做网站嘉兴网站制作推广
  • 深圳兼职做网站涿州网站制作
  • 能找本地人做导游的网站app模板素材下载免费
  • 网站积分的作用网站开发需要看相关书籍
  • 建设银行总行网站alexa排名与什么有关系
  • 阿里云服务器发布网站收款网站怎么建设
  • 开发东莞网站制作公司做网站优化步骤
  • 网站版权信息的正确写法如何制作网络游戏
  • 郑州移动端网站建设如何在网上推广自己的公司
  • 企业建站源码系统破解网站后台
  • 石家庄网站开发报价企业注册资本代表什么
  • 招商平台公司宁波seo教程推广平台
  • 哪些网站可以做房产推广垂直门户网站都有什么
  • 不得不知道的网站金石项目管理软件
  • 怎么恢复网站数据库网站开发作业代做
  • 哪里建设网站最好用中国第五冶金建设公司医院网站
  • 雄安网建 网站建设订餐网站建设
  • 广州视频网站建站公司网站 体系
  • 青浦门户网站网站推广烟台公司电话
  • 湖北荆门建设银行网站wordpress购物模板下载
  • 学ui+wordpress模板北京推广优化
  • 建分类网站得花多少钱深圳设计网站开发
  • 网站集群建设和网站集约化百度商桥怎么绑定网站
  • 青岛模板网站建设价格网络品牌网站建设
  • 网站建设的几大要素网站的做网站的公司
  • 怎么登陆自己的公司网站垂直电商网站建设
  • 温州微网站制作哪里有许昌网站建设哪家最好
  • 中国中小企业网站官网网页制作工具按其制作方式分 可以分为