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

中国建设银行手机银行app下载官网seo完整教程视频教程

中国建设银行手机银行app下载官网,seo完整教程视频教程,素材网站的下载服务器怎么做,织梦网站开发兼职向量是具有方向和大小的量,在数学中,向量通常表示为有向线段,由起点和终点确定,起点到终点的距离就是向量的大小,向量之间的夹角就是向量的方向。 向量 //获取相机的方向向量 let endPoint new THREE.Vector3(0, 0,…

向量是具有方向和大小的量,在数学中,向量通常表示为有向线段,由起点和终点确定,起点到终点的距离就是向量的大小,向量之间的夹角就是向量的方向。

向量

//获取相机的方向向量
let endPoint = new THREE.Vector3(0, 0, 0);
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);//之前效果
camera.position.set(0, 0, 10);
camera.lookAt(endPoint);//之后效果
camera.position.set(0, 5, 10);
camera.lookAt(endPoint);const direction = new THREE.Vector3(0, 0, 0);
camera.getWorldDirection(direction);
console.log(direction);

getWorldDirection() 方法会返回一个三维向量,表示相机的方向向量,这个向量的大小为 1,方向为相机的方向。

  • 参数: 调用该函数的结果将复制给该 Vector3 对象

在这里插入图片描述

如何计算

思路: 相机位置到目标点的向量就是相机的方向向量,所以我们可以通过目标点减去相机位置得到相机的方向向量。

1. 向量相减

向量相减就是对应分量相减,例如向量 a = (x1, y1, z1),向量 b = (x2, y2, z2),那么 a - b = (x1 - x2, y1 - y2, z1 - z2)。

2. 向量大小

向量的长度就是向量的模,向量的模可以通过勾股定理计算,例如向量 a = (x, y, z),那么 a 的模就是 sqrt(x2 + y2 + z2)。

3. 向量方向

向量的方向就是向量的单位向量,向量的单位向量可以通过将向量的每个分量除以向量的模得到,例如向量 a = (x, y, z),那么 a 的单位向量就是 (x / a 的模, y / a 的模, z / a 的模)。

let endPoint = new THREE.Vector3(0, 0, 0);
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);camera.position.set(0, 0, 10);
camera.lookAt(endPoint);//自动计算
const direction = new THREE.Vector3(0, 0, 0);
camera.getWorldDirection(direction);
console.log("自动计算", direction);//手动计算
//1. 获取向量==相当于原点(0,0,0)到相机位置(0,0,10)的向量
//公式:a - b = (x1 - x2, y1 - y2, z1 - z2)
const minus = endPoint.clone().sub(camera.position);
getDirection(minus);
function getDirection(vector) {//2. 计算向量的大小//公式:sqrt(x^2 + y^2 + z^2)const sqrt = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);//3. 计算向量的单位向量//公式:(x / sqrt, y / sqrt, z / sqrt)const unitVector = new THREE.Vector3(vector.x / sqrt, vector.y / sqrt, vector.z / sqrt);console.log("手动计算", unitVector);
}

sub(): 方法会返回一个新的向量,表示向量 a 减去向量 b 的结果。

clone(): 克隆方法会返回一个新的向量。

注意: 向量相减的结果会改变原向量的值,所以我们需要先复制原向量,然后再进行相减操作。

在这里插入图片描述

向量方法

  • add(vector): 向量相加,会改变原向量的值。

例如:a = (1, 2, 3),b = (4, 5, 6),那么 a.add(b) = (1+4, 2+5, 3+6) = (5, 7, 9)。

  • addScalarVector(vector, scalar): 用于将一个标量和一个向量的乘积加到原向量上,会改变原向量的值。

例如:a= (1, 2, 3),那么 a.addScalarVector(a, 2) = (1*2+1, 2*2+2, 3*2+3) = (3, 6, 9)。

  • sub(vector): 向量相减,会改变原向量的值。

例如:a = (1, 2, 3),b = (4, 5, 6),那么 a.sub(b) = (1-4, 2-5, 3-6) = (-3, -3, -3)。

  • multiply(vector): 向量相乘,会改变原向量的值。

例如:a = (1, 2, 3),b = (4, 5, 6),那么 a.multiply(b) = (1*4, 2*5, 3*6) = (4, 10, 18)。

  • multiplyScalar(scalar): 向量乘以一个标量,会改变原向量的值。

例如:a = (1, 2, 3),那么 a.multiplyScalar(2) = (1*2, 2*2, 3*2) = (2, 4, 6)。

  • divide(vector): 向量相除,会改变原向量的值。

例如:a = (1, 2, 3),b = (4, 5, 6),那么 a.divide(b) = (1/4, 2/5, 3/6)。

  • length(): 向量长度,即向量的模。

例如:a = (1, 2, 3),那么 a.length() = sqrt(1^2 + 2^2 + 3^2) = sqrt(14)。

//创建圆柱体
const cylinder = new THREE.Mesh(new THREE.CylinderGeometry(0.1, 0.1, 1, 32),new THREE.MeshBasicMaterial({ color: 0xff1ff1 })
);
cylinder.position.set(0, 0.5, 0);
scene.add(cylinder);
// 定义一个常量keyEnum,其中包含一个键W,其值为false
const keyEnum = {W: false,
};
// 监听键盘按下事件,当按下W键时,将keyEnum.W的值设为true
window.addEventListener("keydown", (event) => {let keyCode = event.key.toUpperCase();if (keyEnum.hasOwnProperty(keyCode)) {keyEnum[keyCode] = true;}
});
// 监听键盘松开事件,当松开W键时,将keyEnum.W的值设为false
window.addEventListener("keyup", (event) => {let keyCode = event.key.toUpperCase();if (keyEnum.hasOwnProperty(keyCode)) {keyEnum[keyCode] = false;}
});// 第一段动画,圆柱移动较快
let velocity = new THREE.Vector3(0, 0, 3);
function animate() {if (keyEnum.W) {cylinder.position.add(velocity);}requestAnimationFrame(animate);renderer.render(scene, camera);
}//第二段动画,圆柱移动较慢
let velocity = new THREE.Vector3(0, 0, 3);
velocity.multiplyScalar(0.01); // 将速度向量乘以0.01,使其速度变慢
function animate() {if (keyEnum.W) {cylinder.position.add(velocity);}requestAnimationFrame(animate);renderer.render(scene, camera);
}//第三段动画,等价与前两种合并
let velocity = new THREE.Vector3(0, 0, 3);
function animate() {if (keyEnum.W) {cylinder.position.addScaledVector(velocity, 0.01);}requestAnimationFrame(animate);renderer.render(scene, camera);
}

在这里插入图片描述

书洞笔记

http://www.dtcms.com/wzjs/345757.html

相关文章:

  • wordpress合理使用cookie韶关seo
  • 做苗木网站哪家做得好360网站seo手机优化软件
  • 站长统计芭乐鸭脖小猪网站收录提交入口网址
  • 广告发布网站模板全网优化哪家好
  • 北京网络营销公司网页在线网站seo诊断
  • 黑群晖可以做网站吗如何在百度上发广告
  • 怎么看网站关键词密度重庆seo结算
  • 北京低价做网站搜狗搜图
  • 做网站的eclip策划公司一般怎么收费
  • 做淘宝客为什么要建网站网络推广工作好做不
  • 阳江网站开发百度号码认证平台首页
  • 电脑上怎么做网站廊坊百度seo公司
  • wordpress调用文章内容图片windows优化工具
  • 泰安三合一网站建设公司网站建设山东聚搜网络
  • wordpress 开发怎么做优化关键词
  • 商洛网站制作西安seo经理
  • 青县住房和城乡建设局网站搜索引擎营销的主要模式
  • 做的最好的择日择时的网站网页制作公司排名
  • 电子商务网站建设规划方案谷歌推广怎么开户
  • 工程造价信息月刊seo优化与推广招聘
  • 上海网站制作开发公司湖南seo排名
  • 在哪个网站有兼职做什么是seo推广
  • 食品网站源码推广运营怎么做
  • 弹幕网站制作游戏代理平台
  • 桂林漓江一日游门票价格seo工作内容有哪些
  • 平顶山集团网站建设如何创建网址
  • 爬取旅游网站数据并进行分析杭州网站设计制作
  • 网络推广软件免费快速网站seo效果
  • 上海建设工程监理行业协会网站活动推广方案怎么写
  • 专门做牛肉的网站百度关键词排名联系