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

免费学平面设计的网站厦门网站建设公司首选乐振

免费学平面设计的网站,厦门网站建设公司首选乐振,wordpress默认主题修改版,网站建设美橙本文 我们来说 顶点的转换 其实就是 我们所有顶点的位置发生转变 我们整个物体的位置也会随之转变 这里 我们编写代码如下 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.j…

本文 我们来说 顶点的转换

其实就是 我们所有顶点的位置发生转变 我们整个物体的位置也会随之转变
这里 我们编写代码如下

import './style.css'
import * as THREE from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader.js";
//创建相机
const camera = new THREE.PerspectiveCamera(45, //视角 视角越大  能看到的范围就越大window.innerWidth / window.innerHeight,//相机的宽高比  一般和画布一样大最好0.1,1000
);
const scene = new THREE.Scene();
let uvTexture = new THREE.TextureLoader().load("/textUv.jpg");const geometry = new THREE.BufferGeometry();
// 创建顶点数据
const vertices = new Float32Array([-1.0 ,-1.0 ,0.0,1.0 ,-1.0, 0.0,1.0 ,1.0 ,0.0,-1.0 ,1.0, 0.0
])
geometry.setAttribute("position", new THREE.BufferAttribute(vertices, 3));
const indices = new Uint16Array([0 ,1 ,2, 0, 3, 2]);
const material = new THREE.MeshBasicMaterial({map: uvTexture,side: THREE.DoubleSide
})
const uv = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1
])
geometry.setAttribute("uv", new THREE.BufferAttribute(uv, 2));
const normals = new Float32Array([0, 0, 1,0, 0, 1,0, 0, 1,0, 0, 1
])
geometry.setAttribute("normal", new THREE.BufferAttribute(normals, 3));
geometry.setIndex(new THREE.BufferAttribute(indices, 1));
console.log(geometry);
const cube = new THREE.Mesh(geometry, material);
scene.add(cube)//c创建一个canvas容器  并追加到 body上
const renderer = new THREE.WebGLRenderer(0);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);//设置相机位置   这里 我们设置Z轴  大家可以试试  S Y 和 Z  都是可以的
camera.position.z = 5;
//设置相机默认看向哪里   三个 0  代表 默认看向原点
camera.lookAt(0, 0, 0);
//将内容渲染到元素上
renderer.render(scene, camera);
const controls = new OrbitControls(camera, renderer.domElement);let rgbeloader = new RGBELoader();
rgbeloader.load("/xhdr/Alex_Hart-Snow_Pano_2k.hdr",(texture) =>{scene.background = texture;texture.mapping = THREE.EquirectangularReflectionMapping;material.envMap = texture;
})function animate() {controls.update();requestAnimationFrame(animate);/*cube.rotation.x += 0.01;cube.rotation.y += 0.01;*/renderer.render(scene, camera);
}
animate();

运行代码 我们元素是在中间的
在这里插入图片描述
但是 我们统一将他每一个顶点 x轴的值都加四
两个 负一 加四成 3 两个 一加四成 5
在这里插入图片描述
运行代码 很明显的看到 我们改了顶点的x轴 整个几何体x轴也向右移动了
在这里插入图片描述
但是这样 position 是不会改变的 我们看到的元素 依旧在中间位置

其实有方法可以帮我们移动顶点
这里 我们官网搜索
BufferGeometry
在这里插入图片描述
拉到下面 找到它这个 translate 函数
在这里插入图片描述
这个函数就可以直接移动顶点

首先 我们将
vertices 顶点的内容还原回去

// 创建顶点数据
const vertices = new Float32Array([-1.0,-1.0 ,0.0,1.0 ,-1.0, 0.0,1.0 ,1.0 ,0.0,-1.0 ,1.0, 0.0
])

我们可以直接
在这里插入图片描述
给需要移动顶点的几何体加上 translate 这里 我们设置所有顶点 y z 轴0不变 x轴加4

我们运行代码
在这里插入图片描述
然后 我们查看控制台中的 position
它也帮我们把 各个顶点的 x轴都加了4
在这里插入图片描述
那么 问题来了 我们什么时候要移动物体 什么时候又要移动顶点呢?

其实 绝大多数情况 position 直接移动物体是更好的
旋转呀 平移呀 我们都是更倾向于操作物体本身 因为最大的问题在于 移动顶点 你物体的中心点就不在物体中心了

但是有种特殊情况 比如 你的Float32Array 里面的顶点数据是后端接口返回的
它最初甚至的位置又有问题
那么 我们就需要 translate 去修正原点

http://www.yayakq.cn/news/650401/

相关文章:

  • 福州seo推广外包江苏企业建网站排名优化
  • 自己如何做一个网站医疗器械网站制作
  • 网站开发与服务合同范本wordpress代码seo
  • 12个 网站模板 管理办法wordpress设置按钮
  • 网站建设行业阿里云网站备案后
  • 网站页面图片青岛谁优化网站做的好
  • 网站建设6135678html5 手机网站页面实例
  • 网站建设企业哪里好山东网站推广公司
  • 淘宝上做网站可信吗项目设计课题研究高中综合评价
  • wordpress修改站点地址html做的小网站
  • 济南市网站建设企业怎么做网站计划
  • 外包项目网站百度链接地址
  • 做网站的公司成本室内装饰设计师证书有用吗
  • 网站建设平台汉龙怎么用wordpress打开网站吗
  • 网站主题模板企业百度网站建设
  • 通过ip访问网站需要怎么做宣传推广的方式
  • 网站建设茂名汽车后市场互联网公司排名
  • 中国十大品牌网站南昌网站建设怎么样
  • 上海建筑网站关于门户网站建设方案
  • 网站背景如何做佛山网页开发
  • 现在做网站开发网站开发与设计教程pdf
  • 免费的网站软件万网域名优惠口令
  • 包装材料营销型网站企业在线培训平台
  • 官方网站建设推广代运营公司介绍
  • 设计作品网站有哪些wordpress怎么增加菜单
  • 惠州市住房和城乡规划建设局网站网站建设规划范文
  • wordpress 下载站主题山东seo多少钱
  • 微软网站设计企业微信开发者
  • 能建设铁塔的公司网站现在一些产品网站开发用的啥框架
  • 搜狗怎么做网站微博如何做的跟网站一样