作者: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电子广告牌字幕上下左右移动特效相关推荐

  1. android led弹幕,LED弹幕手持字幕

    LED弹幕手持字幕是一款很不错的手机弹幕工具,用户可以更好的在线进行弹幕设置,这款软件功能强大,用户可以更好的在线进行自己的弹幕设置,丰富的模板提供给你,各类模板应有尽有,用户可以自由的设置,输入自己 ...

  2. LED电子时钟显示屏(NTP时间同步服务器)是如何完成授时服务的?

    LED电子时钟显示屏(NTP时间同步服务器)是如何完成授时服务的? LED电子时钟显示屏(NTP时间同步服务器)是如何完成授时服务的? 网络时间同步显示系统介绍 第一部分 网络时间同步显示系统概述: ...

  3. 炫彩LED电子时钟制作记录

    炫彩LED电子时钟制作笔记 以前也做过2.3寸数码管的电子时钟,但是显示颜色是固定的红色或蓝色.最近因为PCB厂家打样大放血,10*10以内5片只要5元还包邮,网上流出雪花灯,灯珠用的是那种单总线内置 ...

  4. STM32HAL库电子广告牌显示广告+温湿度+时间设置

    STM32HAL库电子广告牌显示广告+温湿度+时间 概述 第一天进度 材料采购 1.新建KEIL工程 2.软件编写 第二天进度 1.开始接线 2.开始调试 总结 概述 电子广告牌多用于显示一些简短的信 ...

  5. 自定义公交LED电子路牌模拟器

    该程序用以模拟公交车LED电子路牌显示. 暂时只能单行显示,中段最多显示4个字符,两边可根据设置显示3~5个字符. 以后会逐步完善其功能.

  6. 【Android开发】范例2-开启新线程实现电子广告牌

    利用之前学过的多线程处理技术,我们做一个开启新线程实现电子广告牌的项目 界面布局文件,加入ImageView图片控件,用于显示一个图片,一个TextView控件,用于显示广告说明语. res/layo ...

  7. 交互式电子广告牌实现

    目录 一.实现流程 二.代码实现 三.效果展示 一.实现流程 1.首先要知道电子广告牌的宽度,类比现实生活中一格一格的显示屏,程序中使用空格代替: 2.需要设置时间间隔,广告语中每个字的停留时间: 3 ...

  8. Unity ParticleSystem 之 简单的电子自旋 Electrons ParticleSystem 粒子特效

    Unity ParticleSystem 之 简单的电子自旋 Electrons ParticleSystem 粒子特效 目录 Unity ParticleSystem 之 简单的电子自旋 Elect ...

  9. PR字幕模板 霓虹灯特效火焰线条动画背景PR字幕条模板

    PR字幕模板 霓虹灯特效火焰线条动画背景PR字幕条模板 Premiere霓虹灯特效火焰线条动画模板,包含9个酷炫的外观和具有创造性的动画文字动画.非常易于使用. 可以在公司演示,业务幻灯片,促销,活动 ...

最新文章

  1. 第十六届全国大学智能车竞赛东北赛区成绩与奖项
  2. 集群与存储 LVS的集群
  3. Siamese Network (应用篇1) :孪生网络特征用于图像匹配 ICPR2016
  4. 《大话移动 APP 测试》
  5. 【POJ - 1741】Tree(树分治,容斥,点分治,模板题)
  6. c语言随机漫步,基于最短路径的随机游走算法研究与应用
  7. Android ActionBar高级自定义——设置标题居中和添加控件
  8. 综保参数如何设定_FANUC主轴速度怎么去设定限制?
  9. python中get啥意思_理解Python中的.get()方法
  10. 基于深度学习算法的NLP集成工具
  11. python基础(1)——简介与安装
  12. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第3节 maven标准目录结构和常用命令_06maven标准目录结构...
  13. 调度算法-时间片轮转+例题详解
  14. Java Web项目开发项目经验总结
  15. 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
  16. python爬取酷狗音乐_python使用beautifulsoup4爬取酷狗音乐代码实例
  17. 的it生活_双子IT男性格随和、爱美食懂生活,会给女朋友准备小惊喜 | 企鹅来电VOL.03...
  18. Heading/Pitch/Roll与Omega/Phi/Kappa简单介绍
  19. 应届生参加工作,什么事情越早知道越好?
  20. 高手都具备“向下兼容”的能力

热门文章

  1. 原始套接字-SOCK_RAW
  2. 使用html div 画一个简易的房子
  3. 2020-09-04 Android 应用在vivo手机安装提示风险应用处理方案
  4. Python开发 之 Jieba分词示例
  5. js获取div元素高度和宽度的方法
  6. 【Unity/C#】限制字符串显示长度,比如限制玩家角色名字显示长度
  7. python代码提示expected_Expected conditions模块使用方法汇总代码解析
  8. 【Linux】版本管理工具 Git
  9. OneNote丢失笔记分区后找回
  10. c pc 和android通讯,Android 客户端与PC服务端socket通信接收与发送图片(终结者)