WebGL实现LED电子广告牌字幕上下左右移动特效
作者:nannan
前言
现实中LED电子广告牌的作用是可以动态显示一些促销活动等,不用浪费打印费用。那些纸质的广告牌需要更换,而电子屏电脑端修改就行了。咱们再来看看项目中构建的实体场景,有很多放置广告牌的地方,比如公交站台、高速公路LED显示屏、或者建筑上的显示屏等。模型建模贴纹理最终生成缓存发布服务,这些都是静态的,达不到动态效果。如果想更换里面广告牌的字幕内容,换模型材质这种方法工作量较大,不推荐。下面我为大家详细介绍用代码怎么实现LED电子广告牌字幕上下左右移动特效。
一、实现思路
1.获取广告牌的面节点坐标,构建实体面;
2.Canvas绘制图片和文本,文字可动态移动;
3.Canvas传入面中作为面材质展示信息。
二、实现代码
1.获取广告牌的面节点坐标,构建实体面
通过范例http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#pickPosition拾取当前场景LED电子广告牌的面节点坐标,构建实体面。
var PicPolygon = viewer.entities.add({polygon: {hierarchy: Cesium.Cartesian3.fromDegreesArrayHeights([116.38052888784802, 39.98764626341058, 121.1667,116.38052948390695, 39.98764629006779, 140.9782,116.3808956730464, 39.987657145520835, 140.9782,116.3808964575248, 39.98765711359566, 121.2360]),//拾取的面节点位置material: //先为空,后面介绍perPositionHeight: true,//使用每个位置的高度}});
2.Canvas绘制图片和文本,文字可动态移动
创建canvas标签,设置canvas的画布大小,设置文本字体样式大小以及颜色,将图片和文字放置在画布上。下面代码中tx表示字体位置横坐标,ty表示纵坐标。tx随着每次回调数值增大实现左右移动。
—fillText(text,x,y) - 在 canvas 上绘制实心的文本
—strokeText(text,x,y) - 在 canvas 上绘制空心的文本
function drawCanvas() {var canvas = document.createElement('canvas'); //创建canvas标签var ctx = canvas.getContext('2d');canvas.width = 440;canvas.height = 440;ctx.font = "80px Arial"; //设置或返回文本内容的当前字体属性ctx.fillStyle = "rgb(255,1,1)";var image = new Image();image.src = './images/a.jpg';ctx.drawImage(image, 10, 10);if (tx < 400) {ctx.fillText(text, tx, ty);tx = tx + 1;} else {tx = 0;}return canvas;
}
实现字幕上下移动只需要tx保持不变,随着每次回调改变ty变量的值即可,这里代码不做赘述。
3.Canvas传入面中作为面材质展示信息
主要用ImageMaterialProperty方法来将Canvas作为image材质传入面中,CallbackProperty一直循环调用Canvas,实现动态效果。
new Cesium.ImageMaterialProperty({image: new Cesium.CallbackProperty(drawCanvas, false),//回调canvastransparent: true}),
4.替换LED电子广告牌字幕
替换字幕只需要更换canvas对象里的文本即可
$("#search").click(function() {text = document.getElementById('labeltext').value;
});
三、效果显示
1.LED电子广告牌字幕左右移动特效
2.LED电子广告牌字幕变化
WebGL实现LED电子广告牌字幕上下左右移动特效相关推荐
- android led弹幕,LED弹幕手持字幕
LED弹幕手持字幕是一款很不错的手机弹幕工具,用户可以更好的在线进行弹幕设置,这款软件功能强大,用户可以更好的在线进行自己的弹幕设置,丰富的模板提供给你,各类模板应有尽有,用户可以自由的设置,输入自己 ...
- LED电子时钟显示屏(NTP时间同步服务器)是如何完成授时服务的?
LED电子时钟显示屏(NTP时间同步服务器)是如何完成授时服务的? LED电子时钟显示屏(NTP时间同步服务器)是如何完成授时服务的? 网络时间同步显示系统介绍 第一部分 网络时间同步显示系统概述: ...
- 炫彩LED电子时钟制作记录
炫彩LED电子时钟制作笔记 以前也做过2.3寸数码管的电子时钟,但是显示颜色是固定的红色或蓝色.最近因为PCB厂家打样大放血,10*10以内5片只要5元还包邮,网上流出雪花灯,灯珠用的是那种单总线内置 ...
- STM32HAL库电子广告牌显示广告+温湿度+时间设置
STM32HAL库电子广告牌显示广告+温湿度+时间 概述 第一天进度 材料采购 1.新建KEIL工程 2.软件编写 第二天进度 1.开始接线 2.开始调试 总结 概述 电子广告牌多用于显示一些简短的信 ...
- 自定义公交LED电子路牌模拟器
该程序用以模拟公交车LED电子路牌显示. 暂时只能单行显示,中段最多显示4个字符,两边可根据设置显示3~5个字符. 以后会逐步完善其功能.
- 【Android开发】范例2-开启新线程实现电子广告牌
利用之前学过的多线程处理技术,我们做一个开启新线程实现电子广告牌的项目 界面布局文件,加入ImageView图片控件,用于显示一个图片,一个TextView控件,用于显示广告说明语. res/layo ...
- 交互式电子广告牌实现
目录 一.实现流程 二.代码实现 三.效果展示 一.实现流程 1.首先要知道电子广告牌的宽度,类比现实生活中一格一格的显示屏,程序中使用空格代替: 2.需要设置时间间隔,广告语中每个字的停留时间: 3 ...
- Unity ParticleSystem 之 简单的电子自旋 Electrons ParticleSystem 粒子特效
Unity ParticleSystem 之 简单的电子自旋 Electrons ParticleSystem 粒子特效 目录 Unity ParticleSystem 之 简单的电子自旋 Elect ...
- PR字幕模板 霓虹灯特效火焰线条动画背景PR字幕条模板
PR字幕模板 霓虹灯特效火焰线条动画背景PR字幕条模板 Premiere霓虹灯特效火焰线条动画模板,包含9个酷炫的外观和具有创造性的动画文字动画.非常易于使用. 可以在公司演示,业务幻灯片,促销,活动 ...
最新文章
- 第十六届全国大学智能车竞赛东北赛区成绩与奖项
- 集群与存储 LVS的集群
- Siamese Network (应用篇1) :孪生网络特征用于图像匹配 ICPR2016
- 《大话移动 APP 测试》
- 【POJ - 1741】Tree(树分治,容斥,点分治,模板题)
- c语言随机漫步,基于最短路径的随机游走算法研究与应用
- Android ActionBar高级自定义——设置标题居中和添加控件
- 综保参数如何设定_FANUC主轴速度怎么去设定限制?
- python中get啥意思_理解Python中的.get()方法
- 基于深度学习算法的NLP集成工具
- python基础(1)——简介与安装
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第3节 maven标准目录结构和常用命令_06maven标准目录结构...
- 调度算法-时间片轮转+例题详解
- Java Web项目开发项目经验总结
- 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
- python爬取酷狗音乐_python使用beautifulsoup4爬取酷狗音乐代码实例
- 的it生活_双子IT男性格随和、爱美食懂生活,会给女朋友准备小惊喜 | 企鹅来电VOL.03...
- Heading/Pitch/Roll与Omega/Phi/Kappa简单介绍
- 应届生参加工作,什么事情越早知道越好?
- 高手都具备“向下兼容”的能力
热门文章
- 原始套接字-SOCK_RAW
- 使用html div 画一个简易的房子
- 2020-09-04 Android 应用在vivo手机安装提示风险应用处理方案
- Python开发 之 Jieba分词示例
- js获取div元素高度和宽度的方法
- 【Unity/C#】限制字符串显示长度,比如限制玩家角色名字显示长度
- python代码提示expected_Expected conditions模块使用方法汇总代码解析
- 【Linux】版本管理工具 Git
- OneNote丢失笔记分区后找回
- c pc 和android通讯,Android 客户端与PC服务端socket通信接收与发送图片(终结者)