zhy
利用状态模式去除多个if/else
    假如现在有一个这样的问题, 如果一个集合存储A,B,C的对象(B继承了A,C继承了B),现在需要对 这个集合进行遍历,根据取出来的元素不同对待,那么我们应该怎么做呢。     我们一般都会用if/else语句进行判断处理,如下:   public static void main(String[] args) thro...
发布于2020/03/10 19:59 212
LZQ plus
Vue+Three.js 入门八(使用canvas自定义纹理)
[图片] 前言   通常一个3D场景必不可缺少元素的是一个数据的显示,像3D游戏里的人物血条、3D工厂里面的大屏生产数据(类似上图),因为这些数据都是实时的,我们不可能用像图片这种静态资源来渲染,况且有时显示样式还比较复杂,所以我们需要自定义这些实时数据的显示,这里的核心便是canvas。 核心知识点   1、canvas:一系列canvas的操作,渲染文字、绘画图片、...
发布于2020/03/10 19:03 169
qi.wei
直播系统总结
直播系统总结     文章分为以下几个部分:       1.什么是直播系统     2.直播系统的优势     3.直播系统的构成     4.直播客户端     5.流媒体服务器     6.播放器客户端   &n...
发布于2020/03/07 22:37 203
qi.wei
播放器的音视频同步
播放器的音视频同步     文章分为以下几个部分:       1.音视频同步的原理     2.需要注意的地方     3.代码示例         音视频同步的原理       音频和视频即使按照固定的帧率去...
发布于2020/03/07 22:32 192
qi.wei
SDL播放音频
SDL播放音频     文章分为以下几个部分:       1.SDL简介     2.SDL使用环境搭建     3.使用SDL播放音频需要注意的地方     4.代码示例         SDL简介   &...
发布于2020/03/07 22:21 163
LZQ plus
Vue+Three.js 入门七(模型根据轨迹自动移动和转向)
[图片] 前期的思路分享   为了实现模型给定像上图中蓝色的轨迹之后来回走动的效果(卫兵巡逻),我一开始的思路就是根据模型坐标和模型的下一个坐标计算出夹角(v1.angleTo(v2);加上特定的方式计算出模型向左转还是向右转),然后用模型的rotation累加累减的方式实现转向效果,实际上模型是在不停转动,并且代码繁多,十分不可取,所以分享一下我这个失败的思路。下面是成功实现效果的...
发布于2020/03/06 18:14 176
LZQ plus
Vue+Three.js 入门六(控制模型动画)
[图片] 核心知识点   1、AnimationMixer(Object3D):混合器播放的动画所属的对象。当场景中的多个对象独立动画时,每个对象都可以使用同一个动画混合器。我们可以理解为模型的动画引擎,有了它我们就可以操作动画。   2、AnimationClip(String,Number,Array):动画编辑器,当我们导入的模型存在动画时,模型数据里面的anima...
发布于2020/03/06 18:09 189
qi.wei
直播系统的组成部分三:拉流--拉流播放
直播系统的组成部分三:拉流--拉流播放     文章分为以下几个部分:     1.实现拉流播放的逻辑     2.具体流程         实现拉流播放的逻辑     之前已经实现了拉流:     http://www.li...
发布于2020/03/04 00:33 182
qi.wei
直播系统的组成部分三:拉流—简单的拉流器
直播系统的组成部分三:拉流—简单的拉流器     文章分为以下几个部分:     1.拉流的实现     2.代码分析         拉流的实现     拉流是将直播推流到流媒体服务器的流数据拉取到本地进行解码播放。拉流之前首先需要有一个拉流地...
发布于2020/03/04 00:03 193
qi.wei
用VLC播放器模拟流媒体服务器向外转发数据
用VLC播放器模拟流媒体服务器向外转发数据     文章分为以下几个部分:     1.前言     2.下载安装VLC     3.模拟创建流媒体服务器         前言     在开发直播系统的拉流部分的时候,需要有一个流媒体服...
发布于2020/03/03 23:58 213
LZQ plus
Vue+Three.js 入门五(实现流动管道效果)
[图片] 实现流动管道的思路    在到这里的同学应该是对Three.js的基础有了一定的认知,如果对材质不太了解的同学可以去官方网站查阅一下资料。    言归正传,如果想要完成一个可以看见管道内部流水的效果,首先离不开的是构造函数“管道几何体(TubeGeometry)”,它可以根据三维点坐标,连接起来进而生成一个管道体,但是...
发布于2020/02/29 15:17 323
LZQ plus
Vue+Three.js 入门四(鼠标点击模型实现交互)
[图片] 实现点击模型触发事件的思路     在一个3D场景中,事件的交互大部分是点击鼠标完成的,像上图显示的那样,我点击了3号车间,然后与其对应的生产数据框就显示出来了。那么“它”是怎么知道我点击的就是3号车间,这里就用到Three里的一个构造函数“光线投射Raycaster”,Raycaster里的一个方法“s...
发布于2020/02/29 13:49 191
zhy
设计模式-单例模式及其拓展
单例模式: 指一个类只有一个实例,且该类能自行创建这个实例的一种模式。   单例模式的用途:      1. 一个类只生成一个对象,可以节省内存资源、保证数据内容的一致性,避免出现当某类需要频繁实例化,而创建的对象又频繁被销毁的情况。      2. 适用于对象需要被共享的场合。共享对象可...
发布于2020/02/29 13:07 184
zhy
简单工厂+反射机制改进抽象工厂模式
抽象工厂模式是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。   抽象工厂模式的主要优点如下: 1. 用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程; 2. 在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则; 3. 可...
发布于2020/02/28 20:09 183
qi.wei
直播系统的组成部分一:音视频采集—音频采集部分
直播系统的组成部分一:音视频采集—音频采集部分     文章分为以下几个部分:       1.前言     2.获取音频输入设备的名称     3.代码示例         前言       在直播...
发布于2020/02/27 00:50 190
魏晓巍
ios设备微信公众号网页二次分享问题总结
       在之前的分销商城项目中,用到了微信分享的功能,在ios设备中出现了二次分享失败的问题。        所谓二次分享,就是A用户在公众号页面中分享一次后,B用户通过分享链接进入网页,再次分享。在安卓设备中,不存在二次分享失败的情况,这种情况目前只发现出现在ios设备中。     &n...
发布于2020/02/26 20:57 177