网站首页 > 知识剖析 正文
最近开发一个vr全景图片编辑器,开始研究webgl,看得云里雾里,感觉太底层了,对于一个数学和图形学都不好的人来说,和看天书差不多,幸运的是ThreeJS这个框架很好的对webgl底层进行来封装,不用知道那么多底层知识,下面对最近的项目重点做一个笔记。
开发环境
three.min.js
OrbitControls.js
解决方案
- 创建球的过程比较简单,这里就不说了。
- 创建点group,考虑后面会做删除功能,所以把所有的实体都以group组为单位添加,后续方便做删除
// 标记点组合
var gLabel = new THREE.Group();
- 获取canvas对应球坐标
var average = getAverage();
// 获取average函数
function getAverage() {
var average = 0;
if (dom.clientWidth > dom.clientHeight) {
average = dom.clientHeight / 180;
} else {
average = dom.clientWidth / 360;
}
return average;
}
- 创建文字标注、设置大小、并赋予材质
var texture = new THREE.CanvasTexture(getCanvasFont(textLength * fontsize * average, fontsize * average, textvalue, color, backgroundColor));
var fontMesh = new THREE.Sprite(
new THREE.SpriteMaterial({
map: texture
})
)
fontMesh.scale.x = fontsize / average * textLength;
fontMesh.scale.y = fontsize / average;
- 定位标注
// 定义提示文字显示位置
var lblPos = this.getPosition(_labelData[i].attributes.x + 90, _labelData[i].attributes.y, 35);
fontMesh.position.set(lblPos.x, lblPos.y, lblPos.z);
gLabel.add(fontMesh);
附上效果图
转动时候标注点也会跟随转动,效果还不错。
- 上一篇: 长“痤疮”毁颜值?这样吃就对了
- 下一篇: JVM系列-使用jmap和MAT进行堆内存分析
猜你喜欢
- 2024-12-08 互联网地图坐标系简介及转换(地理坐标系)
- 2024-12-08 Jmap导出java运行中的堆内存dump及Jprofiler分析方法
- 2024-12-08 WeakMap和Map的区别,WeakMap原理,为什么能被 GC?
- 2024-12-08 JVM性能调优之:Jmap
- 2024-12-08 如何测量纳米粒粒径及做粒径分布图
- 2024-12-08 go语言中的map详解
- 2024-12-08 JVM系列-使用jmap和MAT进行堆内存分析
- 2024-12-08 长“痤疮”毁颜值?这样吃就对了
- 2024-12-08 JVM性能调优监控工具jps、jstack、jmap、jhat、hprof使用详解
- 2024-12-08 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)