makeTextSprite(message, parameters) {if (parameters === undefined) parameters = {}var fontface = parameters.hasOwnProperty("fontface") ? parameters["fontface"] : "Arial"/* 字体大小 */var fontsize = parameters.hasOwnProperty("fontsize") ? parameters["fontsize"] : 18/* 边框厚度 */var borderThickness = parameters.hasOwnProperty("borderThickness") ? parameters["borderThickness"] : 5/* 边框颜色 */var borderColor = parameters.hasOwnProperty("borderColor") ? parameters["borderColor"] : {r: 0,g: 0,b: 0,a: 1.0}/* 背景颜色 */var backgroundColor = parameters.hasOwnProperty("backgroundColor") ? parameters["backgroundColor"] : {r: 255,g: 255,b: 255,a: 1.0}/* 创建画布 */var canvas = document.createElement('canvas')var context = canvas.getContext('2d')/* 字体加粗 */context.font = "Bold " + fontsize + "px " + fontface/* 获取文字的大小数据,高度取决于文字的大小 */var metrics = context.measureText(message)var textWidth = metrics.width/* 背景颜色 */context.fillStyle = "rgba(" + backgroundColor.r + "," + backgroundColor.g + "," + backgroundColor.b + "," +backgroundColor.a + ")"/* 边框的颜色 */context.strokeStyle = "rgba(" + borderColor.r + "," + borderColor.g + "," + borderColor.b + "," + borderColor.a + ")"context.lineWidth = borderThickness/* 绘制圆角矩形 */this.roundRect(context, borderThickness / 2, borderThickness / 2, textWidth + borderThickness, fontsize * 1.4 +borderThickness, 6)/* 字体颜色 */context.fillStyle = "rgba(0, 0, 0, 1.0)"context.fillText(message, borderThickness, fontsize + borderThickness)/* 画布内容用于纹理贴图 */var texture = new THREE.Texture(canvas)texture.needsUpdate = truevar spriteMaterial = new THREE.SpriteMaterial({map: texture})var sprite = new THREE.Sprite(spriteMaterial)/* 缩放比例 */sprite.scale.set(10, 5, 0)return sprite
}

three,js项目开发总结 - 创建精灵字体相关推荐

  1. vue router 参数_Vue.js项目开发技术解析

    Vue.js项目开发技术解析 一.Vue.js实例 在一个Vue.js工程中,用于显示内容最基层的实例称之为根实例.通过该实例可以进行页面或组件的更新和显示.对于项目本身而言,无论是什么样的页面,都要 ...

  2. OpenHarmony JS项目开发流程

    2022 CSDN OpenHarmony应用学习挑战赛火热报名中,平板电脑.智能手表.智能手环等你来拿!点击链接了解详情:2022CSDN Openharmony应用学习挑战赛(点我立即报名) 一. ...

  3. 前端React项目的Next.js项目通过CSS引入自定义字体文件

    最近在Web3的项目,需要引入自定义字体,做下记录: 1. 如果是下载的字体文件,直接能使用的就不需要转换,如果是TTF格式则需要转换成eot.svg.woff.woff2,这里提供一个网站Font ...

  4. 【第一个项目开发】创建domain包中的类

    数据库表的创建 在sqlyog中使用sql语句创建表 回到eclipse 让我们先了解一下项目中的分层: 通过下图(用户注册功能)来讲解下,项目中常见的分层(分包). 一般项目中的层: view层作用 ...

  5. 项目开发中引入外部字体库

    前端web项目 下载字体库(如:方正兰亭中黑_GBK.ttf) 全局引入 @font-face {font-family: "方正兰亭中黑_GBK";src: url(" ...

  6. JS项目开发中常用的一些小功能

    目录 字符串技巧 1.比较时间 2.格式化money 3.生成随机ID 4.生成随机 HEX 颜色值 5.Generate star ratings​​​​​​​ 6.网址查询参数​​​​​​​ 7. ...

  7. 在项目开发时创建上传微服务,我们一些纠结的点

    微服务除了可以进行业务处理之外,也可以针对上传功能进行创建,所有的上传微服务依然需要向Eureka中注册,这样就可以在zuul中进行微服务代理操作.   注意:不建议构建上传微服务        在实 ...

  8. iOS项目开发实战——Label中字体字号与Label多行显示

    我们如何通过OC代码来设置Label中显示的文本呢?代码如下: #import "ViewController.h"@interface ViewController ()@end ...

  9. 创建基于Webpack的Vue.js项目

    创建基于Webpack的Vue.js项目 本文目录: 一.Webpack简介 二.创建基于Webpack的Vue.js项目 1.前提条件 (1).检查node 和npm版本信息 (2).升级你的 No ...

最新文章

  1. HashTab---Windows资源管理器的文件属性窗口中添加了一个叫做”文件校验”的标签...
  2. C语言中图形方式界面怎么,「分享」C语言如何编写图形界面
  3. golang mysql demo
  4. C# winform 多线程中创建等待窗体
  5. JavaScript原生添加移除class的方法
  6. ADF:动态视图对象
  7. 【渝粤题库】广东开放大学 岭南文化概论专科 形成性考核
  8. 开启市场新格局 且看新华三计算与存储新品发布会
  9. html文件打开系统错误,win7打开word提示“无法打开文件Normal因为内容有错误”的两种解决方法...
  10. BZOJ2654: tree 二分答案+最小生成树
  11. 移动HTML5前端性能优化指南
  12. d3学习day3 --y轴添加文本标签
  13. Oracle 存储过程笔记.
  14. 服务器密码过期进不去系统,登陆服务器密码过期
  15. 区间对比_预算1015万元区间 国内在售街车综合实力对比
  16. 菜鸟教程android数据库,Flutter - Android 菜鸟教程打包
  17. Pixelmator for Mac(图像编辑器)
  18. End-to-End Object Detection with Fully Convolutional Network
  19. PMP---项目经理解决冲突的8种模式,走过路过不要错过
  20. php基于浏览器的linux终端模拟器,回顾最佳的9款Linux终端模拟器

热门文章

  1. round函数怎么用oracle,oracle round函数的使用方法
  2. 2022-2027年中国微型传动系统行业发展监测及投资战略研究报告
  3. Ghost每个功能详细解释
  4. HTML5与CSS3基础教程(第7版) 高清PDF扫描版​
  5. 阿里云上的k8s中某些节点的pod报dns错误,dns解析失败,bad address
  6. sc4020配置方法
  7. 个人网站集成qq登录的过程及一些坑
  8. 基本命令 Linux操作系统与实训 CentOS 7.4 RHEL 7.4
  9. 命令方块召唤别墅指令_《我的世界》原生更新重磅来袭 新的动物新的方块你心动了吗...
  10. PP鸭最佳替代品!《图压》批量压缩图片而不损失画质,支持JPG,PNG,GIF,SVG