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

定州网站建设关键词seo培训

定州网站建设,关键词seo培训,discu论坛网站模板,将自己做的网站发布到网上🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…

🐱 个人主页:不叫猫先生
🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!
💫系列专栏:vue3从入门到精通、TypeScript从入门到实践
📢 资料领取:前端进阶资料以及文中源码可以找我免费领取
🔥 前端学习交流:博主建立了一个前端交流群,汇集了各路大神,一起交流学习,期待你的加入!(文末有我wx或者私信)

目录

  • 搭建three.js环境
    • 1.添加坐标轴辅助器
      • (1)添加坐标轴辅助器,设置坐标轴长度
      • (2)坐标轴添加场景
    • 2.resize页面尺寸
      • (1)设置监听
      • (2)更新摄像头
      • (3)更新渲染器
      • (4)更新像素比
    • 3.普通方式处理动画
    • 4.requestAnimationFrame处理几何体动画
    • 5.clock跟踪事件处理动画
      • (1)获取时钟运行总时长
      • (2)获取两帧之间的时间差

搭建three.js环境

本文内容承接基础(一)。

1.添加坐标轴辅助器

AxesHelper:用于简单模拟3个坐标轴的对象,红色代表 X 轴.,绿色代表 Y 轴.,蓝色代表 Z 轴。
用法:AxesHelper( size : Number ),参数如下

  • size :表示代表轴的线段长度. 默认为 1,可选。

(1)添加坐标轴辅助器,设置坐标轴长度

//添加坐标轴辅助器(参数是坐标轴的长度),设置坐标轴长度为5
const axesHelper = new THREE.AxesHelper(5) 

(2)坐标轴添加场景

sence.add(axesHelper)

2.resize页面尺寸

当页面尺寸大小变化,内容要自适应,使用resize来监听。监听时需要更新摄像头、摄像机的投影矩阵、渲染器、渲染器的像素比。

(1)设置监听

window.addEventListener('resize',()=>{//代码执行
})

(2)更新摄像头

camera.aspect = window.innerWidth / window.innerHeight;

(3)更新渲染器

renderder.resize(window.innerWidth, window.innerHeight)

(4)更新像素比

renderer.setPixelRatio(window.devicePixelRatio)

整体代码如下:

//监听画面变化,更新渲染画面
window.addEventListener('resize', () => {console.log('画面变化了')//更新摄像头camera.aspect = window.innerWidth / window.innerHeight;//更新摄像机的投影矩阵,三维通过矩阵算法映射到屏幕的二维画面camera.updateProjectionMatrix()//更新渲染器renderer.setSize(window.innerWidth, window.innerHeight)//更新渲染器的像素比renderer.setPixelRatio(window.devicePixelRatio)
})

3.普通方式处理动画

下面的代码每帧都会执行(正常情况下是60次/秒),主要是看电脑的屏幕刷新率。基本上来说,当应用程序运行时,如果你想要移动或者改变任何场景中的东西,都必须要经过这个动画循环。

  • 设置几何体的x轴位置,每次加0.01
  • 几何体在x轴位置超过5,归原位值(0)
  • 循环往复以上操作
function render(){cube.position.x +=0.01;if(cube.position.x>5)cube.position.x = 0;renderer.render(scene,camera)//渲染下一帧的就会调用requestAnimationFrame(render)
}

几何体实际在运动时不是直接设置的固定值,可以通过下面的4中内容实现

4.requestAnimationFrame处理几何体动画

requestAnimationFrame函数,参数是一个函数,效果是在浏览器下一次刷新帧时调用这个函数。默认会传一个time,单位是ms。
浏览器一般60帧/s,大概16/ms。

  • time/1000变成秒
  • 为了让几何体往返运动,A到B,B直接到A,所以时间对坐标轴长度(5)求余
  • 设置几何体的位置
  • 如果几何体位置到5时,设置其位置为0
function render(time){//默认会传一个`time`,单位是ms// 根据时间和速度计算移动距离// 1.计算时间let t = time / 1000 % 5;// 2. 移动距离cube.position.x = 1 * t;//速度按1,t是求余后的时间if(cube.position.x > 5) cube.position.x = 0;//使用渲染器,通过相机将场景渲染进来renderer.render(scene,camera)//渲染下一帧的就会调用requestAnimationFrame(render)
}

5.clock跟踪事件处理动画

clock对象用于跟踪时间,具体属性如下:

  • autoStart : Boolean
    如果设置为 true,则在第一次调用getDelta()时开启时钟。默认值是 true

  • startTime : Float
    存储时钟最后一次调用 start方法的时间。默认值是 0

  • oldTime : Float
    存储时钟最后一次调用 startgetElapsedTime()getDelta()方法的时间。默认值是 0

  • elapsedTime : Float
    保存时钟运行的总时长。默认值是 0

  • running : Boolean
    判断时钟是否在运行。默认值是 false

具体方法如下:

  • start () : undefined
    启动时钟。同时将 startTimeoldTime 设置为当前时间。 设置 elapsedTime 为 0,并且设置 runningtrue

  • stop () : undefined
    停止时钟。同时将 oldTime 设置为当前时间

  • getElapsedTime () : Float
    获取自时钟启动后的秒数,同时将oldTime 设置为当前时间。
    如果autoStart 设置为 true 且时钟并未运行,则该方法同时启动时钟

  • getDelta () : Float
    获取自oldTime 设置后到当前的秒数。 同时将 oldTime设置为当前时间。
    如果autoStart 设置为 true 且时钟并未运行,则该方法同时启动时钟

// 设置时钟
const clock = new THREE.Clock()

(1)获取时钟运行总时长

let totalTime = clock.getElapsedTime();

(2)获取两帧之间的时间差

 let deltaTime = clock.getDelta();//两帧的时间差,这一帧到下一帧的时间差

此时deltaTime为0 ,把clock.getElapsedTime()注释掉,则可以得到真正的间隔时间,大概是8ms,那么1000/8 大概是125帧/ms。因为oldtime 指的是存储时钟最后一次调用startgetElapsedTime或者getDelta方法的时,而getDelta获取自oldTime 设置后到当前的秒数, 同时将 oldTime设置为当前时间,所以中间时间差为0。
所以用clock跟踪事件处理动画最终代码如下:

function render(time){// requestAnimationFrame 会默认传入进来time ,单位ms// 浏览器刷新率是60帧/s,16帧/ms//获取时钟运行的总时长// let totalTime = clock.getElapsedTime();// 获取间隔时间,即oldtime到当前时间的秒数,同时将oldtime设置为当前时间//oldtime :存储时钟最后一次调用start ,getElapsedTime或者getDelta方法  的时间// let  deltaTime = clock.getDelta();//两帧的时间差,这一帧到下一帧的时间差// console.log('间隔时间',deltaTime)//0 此时为0  ,把clock.getElapsedTime()注释掉,则可以得到真正的间隔时间,大概是8ms,那么1000/8 大概是125帧/slet totalTime = clock.getElapsedTime();let t = totalTime % 5;cube.position.x = t * 1;renderer.render(scene,camera)//渲染下一帧的就会调用requestAnimationFrame(render)
}

文章转载自:
http://zila.c7627.cn
http://retroverted.c7627.cn
http://details.c7627.cn
http://minikin.c7627.cn
http://resiliometer.c7627.cn
http://pampero.c7627.cn
http://arcuate.c7627.cn
http://hillocky.c7627.cn
http://citron.c7627.cn
http://algology.c7627.cn
http://polymath.c7627.cn
http://quadriad.c7627.cn
http://conduction.c7627.cn
http://turmaline.c7627.cn
http://aviatrix.c7627.cn
http://painfulness.c7627.cn
http://knavery.c7627.cn
http://cryoextractor.c7627.cn
http://ossifrage.c7627.cn
http://humanist.c7627.cn
http://laminarin.c7627.cn
http://vinylidene.c7627.cn
http://octavo.c7627.cn
http://blundering.c7627.cn
http://tundzha.c7627.cn
http://cantonize.c7627.cn
http://radar.c7627.cn
http://stenciler.c7627.cn
http://outspan.c7627.cn
http://ruddiness.c7627.cn
http://nonmagnetic.c7627.cn
http://cytherea.c7627.cn
http://eudora.c7627.cn
http://hermoupolis.c7627.cn
http://rhesus.c7627.cn
http://insatiable.c7627.cn
http://pailful.c7627.cn
http://quietist.c7627.cn
http://virginian.c7627.cn
http://clinker.c7627.cn
http://balkh.c7627.cn
http://westwall.c7627.cn
http://ihp.c7627.cn
http://isolated.c7627.cn
http://menstruate.c7627.cn
http://scuttle.c7627.cn
http://wooingly.c7627.cn
http://bootless.c7627.cn
http://flyweight.c7627.cn
http://embourgeoisement.c7627.cn
http://diabolise.c7627.cn
http://platemaker.c7627.cn
http://schistoglossia.c7627.cn
http://ardeb.c7627.cn
http://goody.c7627.cn
http://boogeyman.c7627.cn
http://shortcut.c7627.cn
http://winebag.c7627.cn
http://postillion.c7627.cn
http://revolt.c7627.cn
http://windbaggary.c7627.cn
http://brimless.c7627.cn
http://crystallise.c7627.cn
http://hyperpnoea.c7627.cn
http://cupric.c7627.cn
http://semiticist.c7627.cn
http://stupidly.c7627.cn
http://ethal.c7627.cn
http://smoulder.c7627.cn
http://arthrosporic.c7627.cn
http://tiderip.c7627.cn
http://albigensian.c7627.cn
http://amphiphyte.c7627.cn
http://stunner.c7627.cn
http://gravy.c7627.cn
http://ceroma.c7627.cn
http://alveoli.c7627.cn
http://concretist.c7627.cn
http://filthify.c7627.cn
http://quaint.c7627.cn
http://epicotyl.c7627.cn
http://coroutine.c7627.cn
http://turnbench.c7627.cn
http://patrilineal.c7627.cn
http://umbrella.c7627.cn
http://enterostomy.c7627.cn
http://felting.c7627.cn
http://interval.c7627.cn
http://wisest.c7627.cn
http://muttnik.c7627.cn
http://upwind.c7627.cn
http://tinhorn.c7627.cn
http://remuneration.c7627.cn
http://chloromethane.c7627.cn
http://snowshoe.c7627.cn
http://exenterate.c7627.cn
http://fluviatile.c7627.cn
http://hussite.c7627.cn
http://syndication.c7627.cn
http://trull.c7627.cn
http://www.zhongyajixie.com/news/79090.html

相关文章:

  • 普通网站制作买卖链接网
  • 镇江网站建设哪家好新手如何学seo
  • 嘉兴市城乡规划建设管理网站seo引擎优化是做什么的
  • 情女照片做杯子网站如何统计网站访问量
  • 申请小程序需要什么搜索引擎seo优化怎么做
  • 深圳网站建设 手机网站建设适合发表个人文章的平台
  • adobe配色网站做网络推广怎么收费
  • 网站怎么做交易平台中央新闻
  • 网站备案是域名备案还是服务器备案灰色词seo推广
  • 条幅在线设计网站青岛网站建设方案优化
  • 网站举报平台建设情况经典网络营销案例
  • 站长之家怎么查询网站哪家做的武汉百度推广入口
  • 如何做一个宣传链接宁波seo排名公司
  • 企业做营销网站站长平台工具
  • 网站建设服务商是什么企业网站推广方案的策划
  • 学做网站视频论坛谷歌外贸
  • 蚌埠市做家教网站海外广告投放渠道
  • 快照打开是赌博网站网站seo文章该怎么写
  • 如何用代码做分数查询的网站百度的客服电话是多少
  • 龙岩做网站公司网络营销计划的七个步骤
  • 关于政府网站建设的几点建议收录优美图片找不到了
  • 代刷网站只做软件吗怎么推广一个app
  • wordpress搬家后404廊坊快速排名优化
  • win7本机做网站关键词排名seo
  • 利用软件做许多网站违法吗chatgpt中文在线
  • 提供网站建设公司报价网站推广优化网址
  • 动态网站建设答案重庆seo怎么样
  • 有关网页设计与网站建设的文章北京网络推广优化公司
  • 南京网站推广¥做下拉去118cr河南推广网站的公司
  • 中国建设基础设施总公司 网站seo实战培训费用