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

外网进入学校内局域网建设的网站网站建设技术文案

外网进入学校内局域网建设的网站,网站建设技术文案,网站建设详细的步骤有哪些,2021年最新企业所得税政策文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动(可以看到后面) 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…

文章目录

  • Camera 相机
  • PerspectiveCamera 透视相机
  • 正交相机
  • 用鼠标控制相机
    • 大幅度转动(可以看到后面)
  • 控制组件
    • FlyControls 飞行组件控制
    • FirstPersonControls 第一人称控制
    • PointerLockControls 指针锁定控制
    • OrbitControls 轨道控制
    • TrackballControls 轨迹球控制
    • TransformControls 变换控制组件
    • 拖拽组件
  • 尝试引入并使用控件:OrbitControls 轨道
    • 导入
  • DAMPING 阻尼


Camera 相机

以下是几种常见的相机简介

  • ArrayCamera : 数组相机
  • StereoCamera:双眼相机,可以使用两个相机来渲染场景,类似 VR,以及双人成行的屏幕分开的双人游戏
  • CubeCamera:立方体相机,有 6 个相机,分别渲染 6 个面,ThreeJS 可以用它来渲染环境,贴图,反射,折射阴影
  • OrthographicCamera:正交相机,RTS 游戏,相对于透视相机(透视相机更接近人眼的观察效果)
  • PerspectiveCamera:透视相机

PerspectiveCamera 透视相机

参数如下图所示

在这里插入图片描述
第一个参数是视野:建议的值在 45~75

在这里插入图片描述

如果视野足够大的话,那么规则的立方体可能被挤压变形,类似这样的效果

在这里插入图片描述
第二个参数是:横纵比,一般是画布的长/宽

const sizes = {width: 800,height: 600
}const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100)

第三个和第四个参数 nearfar

默认值是 1, 1000,意味着:
任何比近处更近,或者比远处更远的物体,都不会显示出来

选择合适的取值范围,如果远端有山庄,山脉,云朵之类的,可以取合适的值来判断是否渲染它们。


正交相机

正交相机有六个参数,前四个是位置,左右上下,第五个和第六个跟透视相机的参数类似,远近的渲染
在这里插入图片描述

const camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0.1, 100)

在这里插入图片描述
上面的形状并不规则,因为渲染的比例不对,我们获取


const aspectRatio = sizes.width / sizes.height
// Camera 
// const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height)
const camera = new THREE.OrthographicCamera(-1 * aspectRatio, 1 * aspectRatio, 1, -1, 0.1, 100)
  • 正交相机不受透视影响,能保证物体形状不因深度而发生变化,适合 2D、UI、地图等场景。
  • 乘以 aspectRatio 让视口匹配屏幕比例,确保物体不会在不同设备下发生拉伸变形。
  • 如果你需要准确控制几何形状或在屏幕上保持形状固定,正交相机是更好的选择。

用鼠标控制相机

获取坐标位置,并处理坐标值的范围在 [-0.5, 0.5]

/*** Cursor*/
const cursor = {x: 0,y: 0,
}
window.addEventListener('mousemove', (event) => {cursor.x = event.clientX / sizes.width - 0.5cursor.y = event.clientY / sizes.height - 0.5console.log('cursor:>>', cursor)
})

之后再 tick 函数里更改相机的位置

const tick = () => {const elapsedTime = clock.getElapsedTime()// Update objects//   mesh.rotation.y = elapsedTimecamera.position.x = cursor.x * 10camera.position.y = cursor.y * 10camera.lookAt(mesh.position )// Renderrenderer.render(scene, camera)// Call tick again on the next framewindow.requestAnimationFrame(tick)
}

但是这里会有奇怪的问题, 似乎 x 轴跟 y 轴的逻辑是反着的

在这里插入图片描述

所以改变一下 cursor.y 的值,整体取值负数,这样x,y轴都是反方向的了

在这里插入图片描述
或者 x 轴取负数,这样就是类似跟随鼠标的效果
在这里插入图片描述
但是这样有个问题:我看不到物体的后面,那么,如何才能看到后面呢?或者说让相机旋转起来


大幅度转动(可以看到后面)

const tick = () => {const elapsedTime = clock.getElapsedTime()// Update objects//   mesh.rotation.y = elapsedTimecamera.position.x = Math.sin(cursor.x * Math.PI * 2) * 3camera.position.z = Math.cos(cursor.x * Math.PI * 2) * 3camera.position.y = cursor.y * 5camera.lookAt(mesh.position)// Renderrenderer.render(scene, camera)// Call tick again on the next framewindow.requestAnimationFrame(tick)
}

在这里插入图片描述


控制组件

FlyControls 飞行组件控制

演示地址点我: https://threejs.org/examples/#misc_controls_fly

FirstPersonControls 第一人称控制

https://threejs.org/examples/#webgl_geometry_terrain

PointerLockControls 指针锁定控制

https://threejs.org/examples/#misc_controls_pointerlock

OrbitControls 轨道控制

https://threejs.org/examples/#misc_controls_orbit

TrackballControls 轨迹球控制

https://threejs.org/examples/#misc_controls_trackball


TransformControls 变换控制组件

https://threejs.org/examples/#misc_controls_transform

在这里插入图片描述

拖拽组件

https://threejs.org/examples/#misc_controls_drag

在这里插入图片描述


尝试引入并使用控件:OrbitControls 轨道

导入

OrbitControls 它不在 THREE 这个变量中,需要手动的导入

import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'const controls = new OrbitControls(camera, canvas)

两句话,就可以有下图的使用效果了

在这里插入图片描述

DAMPING 阻尼

拖拽的时候有些生涩,加入阻尼之后,会有一定的加速度

在这里插入图片描述
但是会有些奇怪,因为需要再每一帧上更新控件才能正常的显现,在 tick 函数中添加更新 controls.update()

在这里插入图片描述


文章转载自:

http://v1u2f3XI.fjfjm.cn
http://mSqQLfVP.fjfjm.cn
http://cGXmXM2s.fjfjm.cn
http://pxelMkpP.fjfjm.cn
http://99aWOGqa.fjfjm.cn
http://XBGUdwn1.fjfjm.cn
http://0DamROuj.fjfjm.cn
http://0aJ1grLN.fjfjm.cn
http://IQctfBFI.fjfjm.cn
http://ogC8M8pJ.fjfjm.cn
http://DJF13tEz.fjfjm.cn
http://y0ccvC0J.fjfjm.cn
http://64WaT2L5.fjfjm.cn
http://jT4bLHhA.fjfjm.cn
http://L8CjaMn5.fjfjm.cn
http://mwscaXby.fjfjm.cn
http://JoAZnGpX.fjfjm.cn
http://JW6EDkix.fjfjm.cn
http://dUZunXQg.fjfjm.cn
http://ucOPp9li.fjfjm.cn
http://ptKxh0Bw.fjfjm.cn
http://gwTlAEYe.fjfjm.cn
http://CWv0n213.fjfjm.cn
http://9K3JRqal.fjfjm.cn
http://zaqbUWFn.fjfjm.cn
http://GpbU6bPW.fjfjm.cn
http://K3YmMSom.fjfjm.cn
http://NQjgI8TX.fjfjm.cn
http://rSYBv0my.fjfjm.cn
http://dSthlLtM.fjfjm.cn
http://www.dtcms.com/wzjs/704816.html

相关文章:

  • 遵义网站制作茶山网站仿做
  • 家具设计图片郑州seo顾问阿亮
  • 珍爱网建设网站的目的网络平台推广公司
  • 在网站写小说怎么做封面wordpress 外链自动nofflow
  • 儋州网站建设制作公司注册新流程
  • 屯溪网站建设网页设计策划案的范文
  • 如何做网站分析2024明年房价暴涨原因是什么
  • 平面排版网站免费进销存软件
  • 怎么在自己的网站上推广业务店面设计图纸
  • 个人网站建设教程做好网站改版工作
  • 做个网站需要哪些东西室内装修设计费取费标准
  • 公司网站开发人员的的工资多少电商o2o是什么意思
  • 旅游电商网站开发成都市网站建设费用及企业
  • 行政助手网站开发卖代码建设网站
  • 做o2o平台网站需要多少钱vr 全景 网站建设
  • 有自己网站做淘宝客赚钱吗郑州天梯网站制作
  • 忘记网站后台登陆地址网站icp备案费用
  • 传媒网站设计公司wordpress建站中英文
  • 购物网站哪个东西便宜质量好成都住建平台app
  • 深圳做模板网站wordpress 导航菜单
  • 完整网站开发需要多久机械技术支持 东莞网站建设
  • 青岛网站制作系统wordpress 做网站
  • mysql数据做彩票网站购物网站首页源码
  • 哪个网站是tv域名友情链接交易平台
  • 曲阳路街道网站建设购物网站怎么创建
  • 国外企业网络发展的现状长春网站建设方案优化
  • 网站后台管理系统进不去怎么办培训心得简短200字
  • 网站配色方案 对比色做网站时如何确定网站主题
  • 网站的上一页怎么做手机网站有什么区别
  • 用固定ip做访问网站服务器举报网站建设自查报告