Three基础使用:一篇就会!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Three基础使用:一篇就会!相关的知识,希望对你有一定的参考价值。

参考技术A

官方参考地址: https://threejs.org/docs/index.html#manual/zh/introduction/Creating-a-scene

在React项目中执行 npm install --save three

要让three显示东西,我们需要三样东西:场景、相机、渲染器

这很好理解,
首先要有物品——场景:控制场景长什么样 THREE.Scene()
然后需要有眼睛看——相机:控制我们从多远看,从什么角度看 THREE.PerspectiveCamera()

最后是把这些渲染到web上——渲染器:起着链接作用 THREE.WebGLRenderer()

(如果想要立刻看到效果,需要在周期函数中执行)

首先你要有一个dom元素可以做容器——或者说是我们的画布

给渲染器设置好大小:

把相机和场景添加到渲染器中:

把渲染器放进dom容器:通过getElementById获取到dom

到这里,我们已经完成了整个流程,页面有变化但是是空的,原因是场景中我们还没有添加任何的内容。

我们渲染出来的“立方体”实际上是一个网格对象,常见一个立方体的网格对象,需要两部分:模型 and 贴图(材质)

很简单,依次传入两个对象:几何体、材质。

到这里,你会发现还是什么都看不到,为什么呢?

这时候就能看到我们添加新场景的立方体网格对象啦!

emmmm...看着不是很得劲,试试给网格立方体添加上边框线

调整一下摄像头位置,效果就变成了:

至此,我们完整创建了一个网格对象,并使其渲染到了场景中,且我们能够在网页上看到它了!

渲染部分改为调用函数渲染

渲染函数本体如下

上面我们提到,requestAnimationFrame内部的animate函数会反复调用,那么我们要获得动画效果,只需要在animate函数里面去改变就行了

立方体会旋转起来:

但是边框没有跟着旋转。。。

参考这个: https://blog.csdn.net/arvin0/article/details/121613144

结果没有旋转,指挥旋转立方体的最大边框,然后显示出来,就是下面这样:

显然不是我们想要的效果

后来发现 ,新版本EdgesHelper的功能已经变成了 LineSegments() ,也就是 线段
创建一个线段对象,这个对象包裹着立方体,与立方体做同样的运动

与使立方体运动的方法一样,在animate中进行同样的逐帧变化即可

此时效果就变成了:

看到红色的边框了吗!

灯光加入也很简单:创建一个灯光,然后把灯光加入到场景中:

但是发现场景中的立方体没有任何变化,略加思考,考虑到可能是对象材质的问题(可能不能反光还是说别的原因),总之要换一下对象的材质
从基础材质换成MeshLambertMaterial

就可以看到效果了:物体本身是绿色,照射红光时:

显示黑色,这没毛病,换成白光照射:就能正常显示绿色了:

总结一下:

计算机网络基础知识这一篇就够了

文章目录


一、常见的网络设备

1. 集线器(HUB)

集线器器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上

集线器的特点

  1. 扩大网络的传输范围,而不具有定向传送能力,是一个标准的共享式设备,增加网络的节点数目
  2. 所有端口都是共享一条宽带,在同一时刻只能有两个端口传送数据,其它端口只能等待,传输效率低。如果是8口的HUB,那么每个端口得到的带宽就只有1/8的总带宽了
  3. HUB只与它的上联设备(如上层HUB或交换机)进行通信,第一步是将信息上传到上联设备,第二步是上联设备再将该信息广播到所有端口上
  4. 不能保证数据传输的完整性

2. 交换机

交换机一般用于局域网中,主要功能是根据MAC地址来进行数据的交换和转发

交换机的特点:

  1. 交换机的每一个端口所连接的网络都是独立的,也就是独享带宽
  2. 交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播
  3. 交换机根据MAC地址进行转发进行数据转发,因此说交换机是工作在数据链路层的网络设备

3. 路由器

路由器是一类网络互联设备,它基于OSI第3层地址在网络间传递数据分组。路由器能作出决定为网络上的数据分组选择最佳传递路径,因此路由器根据网络地址转发数据,路由器的目的是检查每一个进来的分组(第3层数据),为它们选择穿过网络的最佳路径,然后将它们交换到适当的出口。在大型网络中,路由器是最重要的通信调节设备。实际上,路由器可以使任何种类的计算机与世界上任何地方的其他计算机进行通信。

路由器的特点;

  1. 适用于大规模的网络
  2. 为数据提供最佳的传输路径
  3. 安全性高
  4. 隔离不需要的通信量
  5. 节省局域网的频宽
  6. 安装和设置复杂
  7. 价格较高

4. 路由器和交换机的区别

  1. 交换机工作在OSI第二层,路由器工作在第三层,交换机的工作原理相对比较简单,而路由器具有更多的智能功能,比如选择最佳路径
  2. 交换机利用物理地址来确定是否转发数据,路由器是使用IP地址,由网络网管理员来分配
  3. 传统的交换机只能分割冲突域,而无法分割广播域,而路由可以分割广播域

汇总

  1. 单从组建局域网来说,交换机的速度最快,其次是路由器,最后是HUB。而价格是路由器最贵,然后是交换机
    和HUB
  2. 集线器和交换机的作用可以简单的理解为将一些机器连接起来组成一个局域网;但是两者在性能上有区别:
    线器采用的式共享带宽的工作方式
    ,而交换机是独享带宽。这样在机器很多或数据量很大时,两者将会有比较
    明显的区别;
  3. 路由器的作用在于连接不同的网络并且找到网络中数据传输最合适的路径
  4. 交换机与路由器的区别在于
  • 交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址
  • 路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生

5. 网关

网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互
连。基本功能是实现不同网络协议之间的转换。


特点:

  1. 将两个或多个在高层使用不同协议的网络段连接在一起的软硬件。
  2. 网关从一个网络收到数据包,重新打包成目的网络能接收并处理的格式。
  3. 理论上说,有多少种通信体系结构和应用层协议的组合,就可能有多少种网关。

6. 常见的网络连接介质

1)双绞线

  1. 双绞线俗称网线,每条双绞线通过两端安装的RJ-45连接器(俗称水晶头)将各种网络设备连接起来。 多
    用于主机到集线器或交换机的连接

2)双绞线中两种标准

  • 568A标准:绿白-1,绿-2,橙白-3,蓝-4,蓝白-5,橙-6,棕白-7,棕-8
  • 568B标准:橙白-1,橙-2,绿白-3,蓝-4,蓝白-5,绿-6,棕白-7,棕-8
  • 直通线:双绞线两边是一样标准,比如网线两头都是 568B
  • 交叉线:双绞线两边标准不一样,比如网线一头是568A,另一头是568B

3)网络设备连接

  • 直通线:交换机到路由器、计算机到交换机、计算机到集线器等不同设备互联
  • 交叉线:交换机到交换机、交换机到集线器、集线器到集线器、路由器到路由器、计算机到计算机、计算机到路由器等相同设备互联

4)光纤

与其它传输介质比较,光纤的电磁绝缘性能好、信号衰小、频带宽、传输速度快、传输距离大。主要用于要求
传输距离较长、布线条件特殊的主干网连接。具有不受外界电磁场的影响,无限制的带宽等特点,可以实现每
秒万兆位的数据传送,尺寸小、重量轻,数据可传送几百千米,价格昂贵。

二、IP地址基础知识

1. IP和MAC地址

  1. 以太网上的两台计算机之所以能够交换信息就是因为每个设备都有一块网卡,并且每块网卡拥有唯一的物理地址(称为MAC地址)和唯一的逻辑地址(称为IP地址)。
  2. MAC地址是由生产厂商烧录好的,一般不能改动,并且全球唯一;IP地址需要绑定在网卡上,并且同一个IP地址不能绑定在多个网卡上。

2. IP 地址和MAC地址的区别

  • MAC地址和IP地址长度不一样
    • MAC地址是48位的十六进制数,IPv4地址是32位的二进制数,IPv6地址是128位,通常写成8组,每
      组为四个十六进制数的形式。

    • IPv4地址使用**“点分十进制"法表示;IPv6地址使用"冒分十六进制”**法表示

    IPV4地址:192.168.1.1 十进制数
    IPV6地址:FE80:0000:0000:0000:AAAA:0000:00C2:0002
    MAC地址:00-E1-8C-D8-EC-FE 十六进制

    • MAC地址和IP地址在OSI模型中寻址层不同

      IP地址应用于OSI第三层,即网络层
      MAC地址应用在OSI第二层,即数据链路层

    • MAC地址和IP地址分配方式不一样

      MAC地址分为前24位(称为组织唯一标志符,是由 1 的注册管理机构给厂商分配)和后24位(称为扩展标
      识符,由厂家自己分配)
      P地址是由网络拓扑结构决定分配

3. IP地址

为了便于根据IP地址寻找到该地址所代表的主机,这个32位的二进制数被分为2个部分:
192.168.10.1——>网络号+主机号
网络ID(网络号)和主机ID(主机号)

  • 网络号:区分网络是否在同一区域(网段),说明可以分为几个网络或区域
  • 主机号:区分同一个网络中的主机,说明网络里有多少个主机

注意:互联网这里所说的互联网是有两个或者两个以上的网络进行互联

4.子网掩码

每个IP地址都分割成网络号主机号两部分,目的是便于IP地址的寻址操作;那么IP地址的网络号和主机号各是多少位呢?如何确定?

子网掩码的特点:

  1. 子网掩码不能单独存在,它必须结合IP地址一起使用
  2. 子网掩码只有一个作用,就是将某个IP划分成网络地址主机地址两部分,用来判断两个IP是否子同一个网络下
  3. 子网掩码是一个32位的二进制整数,用点分十进制表示,其对应网络地址的所有位置都为1,对应于主机地址的所有位置都为0

5. IP 地址分类

范围(公网地址)分类私有IP网络类型备注
0.0.0.0 ~ 127.255.255.255A类10.0.0.0~10.255.255.255大规模
128.0.0.0 ~ 191.255.255.255B类172.16.0.0~172.31.255.255中型规模
192.0.0.0 ~ 223.255.255.255C类192.168.0.0~192.168.255.255小型规模
224.0.0.0 ~ 239.255.255.255D类广播地址
240.0.0.0 ~ 247.255.255.255E类保留

1)A类地址

  • A类IP地址有1个字节的网络地址和3个字节注解地址组成,网络地址的最高位必须是0
  • 地址的标识范围为0.0.0.0~127.255.255.255默认子网掩码为255.0.0.0/8

255.0.0.0 = 11111111.00000000.00000000.00000000
因为255转2进制有8个比特位是1所以可以表示为/8

  • 网络号全0表示保留不能用
  • 网络号全为1的IP:127.x.x.x/8表示保留,用于本机回环测试,比如127.0.0.1。
  • 主机号全为0代表本主机所在网络地址,主机号全为1代表网络上所有主机,所以这些IP地址不能分配

    比如 113.0.0.0113.255.255.255

总结

  1. A类地址可用网络数量为 27-2,126个(减去全为0和全为1)
  2. A类地址每个网络能容纳的主机数为224-2,16777214台(减去主机号全求和全0)
  3. A类地址一般分配给规模比较大的网络使用

2)B类地址

  • B类IP地址由2个字节的网络地址2个字节的主机地址组成
  • 地址范围是128.0.0.0191.255.255.255,默认子网掩码为:255.255.0.0/16
    255.255.0.0 = 11111111.11111111.00000000.00000000(一共16个比特位上有1
  • 网络号全为0现在可用,老版本计网教材说保留
  • 主机号全为0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配

总结

  1. B类地址可用网络数为214-1,16383
  2. B类地址每个网络能容纳的主机数为216-2,65534
  3. B类地址一般分配给中型的网络使用

3)C类地址

  • C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是110;
  • 地址范围是192.0.0.0223.255.255.255;默认子网掩码为:255.255.255.0或/24
  • 网络号全为0表示一般保留(老版教材),现在可以用;
  • 主机号全为0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配

总结

  1. C类地址可用的网络数为221-1,2097151
  2. C类地址每个网络能容纳的主机数为28-2,254台;
  3. C类地址一般分配给小型的网络使用。

特殊IP地址说明

IP地址说明备注
0.0.0.0表示整个网络可表示本机源地址,也可以表示特定主机
255.255.255.255一个特殊的广播地址,意味着所有主机x.255.255.255/x.x.255.255/x.x.x.255
127.x.x.x回环测试地址,默认127.0.0.1127.0.0.2 127.1.1.1都可以代表本机回环地址

三、子网划分

1. 子网划分核心

借用主机位来制造新的网络
IP地址=网络号+主机号(子网位+主机位)
IP地址 = 网络位 + 子网位 + 主机位

2. 子网划分方法

IP = 网络号 + 主机号
主机号 = 子网位(n) + 主机位(m)

假设子网位为n,主机位为m,则子网数为2n个,主机数为2m-2个
子网掩码都是由一串连续的0和连续的1组成,这里可以将n看作后面有多少个1m看做后面有多少个0
由于主机位全0表示本网络,全1留作广播地址,减掉2
子网掩码:网络位为全为1,主机位全为0

示例

示例1:
根据子网掩码判断主机数

子网掩码为255.255.255.0时,可以容纳多个台设备?

分析:

  1. 子网掩码由连续的1和连续0组成;
  2. 用于判断IP地址网络位+主机位
    255.255.255.0
    11111111.11111111.11111111.0000000
    主机数:28-2
    255.255.248.0这个子网掩码可以最多容纳多少台电脑?
  3. 将子网掩码转成二进制数
    11111111.11111111.11111000.00000000
  4. 判断有多少个连续的0
    主机数:211-2=2046
    255.255.128.0
    11111111.11111111.10000000.00000000
    215-2

示例2:
根据主机和子网判断子网掩码

有一个B类网络145.38.0.0需要划分为20个能容纳200台主机的子网网络,子网掩码设置多少合适?

2^n=子网数=20
2^m-2=主机数=200
子网掩码=n个连续的1和m个连续的0 11111111.11111111.11111000.00000000
分析:

  1. B类网络 255.255.0.0 /16

  2. 网络数大于等于20个子网;主机数大于等于200个主机
    网络数:
    11111111.11111111.11111000.00000000=255.255.248.0
    2n>=20 n=5,m=11
    主机数:
    11111111.11111111.11111111.00000000=255.255.255.0

    2m-2>=200 m=8,n=8

示例3:

已知192.168.0.0/255.255.255.128网络,请问最多可以划分几个子网,每个子网范围分别是多少?

思路:
1.根据IP分类和子网掩码判断出向主机号借了几位(子网位)
2.根据所借的子网位数算出子网数和主机IP范围
步骤:

  1. 子网掩码转成二进制
    C类默认: 11111111.11111111.11111111.00000000
    实际掩码:11111111.11111111.11111111.10000000
    结果:对比判断,当前IP向主机位借了1位;当前IP最多可以划分2^1个子网
    2.判断每个子网的IP范围
    x=0
    192.168.0.0-------
    192.168.0.0~192.168.0.127
    有效的IP范围:
    192.168.0.1~192.168.0.126/255.255.255.128
    广播地址:192.168.0.127
    x=1
    192.168.0.1-------
    192.168.0.128~192.168.0.255
    有效的IP范围:
    192.168.0.128~192.168.0.254/25
    广播地址:192.168.0.255

以上是关于Three基础使用:一篇就会!的主要内容,如果未能解决你的问题,请参考以下文章

(2022版)零基础入门网络安全/Web安全,收藏这一篇就够了

Java基础算法看这一篇就够了,简单全面一发入魂

计算机网络基础知识这一篇就够了

Hbase基础(特点架构应用场景集群搭建HA设计)这一篇就够了

关于RocketMQ的基础API操作——这一篇就够了

关于RocketMQ的基础API操作——这一篇就够了