所有分类
  • 所有分类
  • 后端开发
WebGL 操作 json 与 echarts 图表的注意事项及实战案例分享

WebGL 操作 json 与 echarts 图表的注意事项及实战案例分享

这次给大家带来WebGL怎样操作json与echarts图表,WebGL操作json与echarts图表的注意事项有哪些,下面就是实战案例,一起来看一下。突然有个想法

我最近玩儿着搞了个挺有意思的东西,就是那个能让你玩转WebGL和json的神奇小盒,还可以跟Echarts图表实时交互!今天就给大家说说这货是怎么做出来的,顺便说下我自己琢磨这玩意儿时的小感悟。

初识HT与CSGBox

第一次玩HT,就被它们超多的包装和方便得不得了的操作给迷住了。这次我选了ht.CSGBox,就像一张白纸,等着我来涂鸦!看了HTforWeb的模型手册后,我学会了怎么操控这个盒子的各个部位,还能往上面加自己喜欢的各种小玩意儿。

贴图的探索

WebGL 操作 json 与 echarts 图表的注意事项及实战案例分享

加个图片做装饰,就是那种初次的想法。我试过了ht.Default.setImage那个方法,确实能把做好的画布上的图像直接贴上去。虽然有点麻烦,但是看到我亲手设计的图案在盒子上那么真实,心里的那股满足感就把之前的辛苦都忘得一干二净

数据的魔法

 var box = new ht.CSGBox();
 dataModel.add(box);

为了让盒子更有趣,我决定画个动态的echarts图在上面。用ht.Default.xhrLoad这个方法,我从json文件里把数据导入,再用ht.Default.parse变成图表。这个过程真是太奇妙了,每次数据变,盒子就能立刻显示出来,像真的活过来了似的!

动画的魅力

为了让界面更炫酷,加了点儿动画特效。这些动效不只是随便挪动点儿东西,而且跟数据表是有关联的!数据变了,它也随之改变,看起来非常有趣。设计好了之后,我对WebGL的动效弄明白多了。

锯齿问题的挑战

搞制做时我也遇到个难题!就是盒子上的图案和文字边儿的那些锯齿印儿。这让我明白了处理半透明东西时,得格外注意那个叫“blend”的样式设置。我发现把“all.transparent”调一调就行了,现在我也学会怎么处理这些小细节了~

代码的简洁之美

ht.Default.xhrLoad('displays/demo/pump.json', function(text){
    const json = ht.Default.parse(text);
    pumpDM.deserialize(json);
    var currentRotation = 0;
    var lastTime = new Date().getTime();
    setInterval(function(){
        var time = new Date().getTime();
        var deltaTime = time - lastTime;
        currentRotation += deltaTime * Math.PI / 180 * 0.3;
        lastTime = time;
        pumpDM.getDataByTag('fan1').setRotation(currentRotation);
        pumpDM.getDataByTag('fan2').setRotation(currentRotation);
        box.iv();
        // g3d.iv();这边也可以刷新g3d,但是局部刷新更省
        pumpGV.validateImpl();
    }, 10);
}, 10);

简单说说,这个项目虽然功能一大堆,但是代码就一百来行,轻松就能搞定!真心觉得好用的工具能够提升效率,而且用着心情也会特别愉快。

个人的成长与反思

 pumpGV.getWidth = function() { return 600;}
 pumpGV.getHeight = function(){ return 600;}
 pumpGV.getCanvas().dynamic = true;//设置这个是为了让canvas能动态显示

搞定这个项目,不只是我技能上的提高,更是思维上的转变,能把繁琐功能简单化。每次解决难题,每处微调完善,都使我越来越有信心,对这行也越来越充满热爱!

总结

 ht.Default.setImage('echart', charts(option));
 ht.Default.setImage('pump', pumpGV.getCanvas());

这个盒子做起来挺有意思,超有挑战性,但也超级好玩!这不只是技术炫技,也是我成长的足迹。那你们?要是给你们个机会,你们会在这个小盒子上搞些啥新玩意儿出来?快来分享下!还有,记得点赞转发,让大家都来体验一把WebGL和Echarts的魔力!

原文链接:https://www.icz.com/technicalinformation/web/2024/06/17671.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?