用H5的WebGL如何在同一个界面做出json和echarts图表

这次给大家带来用h5的webgl如何在同一个界面做出json和echarts图表,用h5的webgl在同一个界面做出json和echarts图表的注意事项有哪些,下面就是实战案例,一起来看一下。

突然有个想法,如果能把一些用到不同的知识点放到同一个界面上,并且放到一个盒子里,这样我如果要看什么东西就可以很直接显示出来,而且这个盒子一定要能打开。我用HT实现了我的想法,代码一百多行,这么少的代码能实现这种效果我觉得还是牛的。

这个例子最基础的就是最外层的盒子了,所以我们先来看看如何实现它:

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

登录后复制

用HT可以很轻易地实现这个盒子,在HT中封装了很多基础图元类型,我们经常用到的ht.Node也是其中一个,这样我们可以不用反复地写相同的代码来完成基础的实现。

这个例子中用的封装好的基础图元是ht.CSGBox,一个注意事项,可以参考HT for Web 建模手册,我们在手册中可以看到,在CSGBox中我们只能操作这个盒子的各个面,如果你想要自己设置一些特殊的功能,只需要操作ht.Style(HT for Web 风格手册)即可。

要想实现在盒子上的一个面上添加贴图,我能想到的只有HT封装的ht.Default.setImage函数了。

这边我实现的方法是参考HT的editor来运作的,重新声明一个graphview组件和一个datamodel数据模型,然后通过ht.Default.xhrLoad方法调用json,在方法中用ht.Default.parse将text转成json格式,然后反序列化将json里面的内容展现成可视化的界面,再设置注意事项,再立即刷新用到这个json的界面,否则就算设置了动画,画面也不会改变。

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和g3d都加到底层div上,并且我的意图是把pumpGV加到g3d中的CSGBox中的一面上,所以为了让pumpGV显示出来 必须设置pumpGV的宽高,而这个宽高必须比我json画出来的图占的面积要大,不然显示不完整。如果想看这个宽高对显示的影响,可以自己改改看来玩玩。

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

登录后复制

echarts图表的显示也是很基础的,只要再加上 canvas.dynamic = true,并且实时刷新gv即可。

最后,只需要将这两个回传的canvas传入ht.Default.setImage中即可:

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

登录后复制

ht.Default.drawImage函数生成新的图实际上就是在canvas上画图,所以我们只要把我们已经画好的canvas传到ht.Default.setImage就可以生成图片了。

有一点需要改进的,我们可以看到盒子上的线段,图形,文字周边都有一圈的锯齿,因为我们在设置字体时,同时设置了半透明,在处于半透明的情况下“blend”样式会被关闭,这个时候我们就没法控制样式了,一般有透明度的时候需要将“all.transparent”设置为true,

相信看了这些案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

相关阅读:

注意事项

注意事项

注意事项

以上就是用H5的WebGL如何在同一个界面做出json和echarts图表的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3125105.html

(0)
上一篇 2025年3月29日 19:39:53
下一篇 2025年3月29日 19:40:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在h5里手机端页面缩放应该如何实现

    这次给大家带来在h5里手机端页面缩放应该如何实现,在h5里手机端页面缩放的注意事项有哪些,下面就是实战案例,一起来看一下。 通常在写注意事项手机端页面的时候,我们会发现页面所显示元素的比例不正确,那此时我们需要添加的就是: 登录后复制 或者…

    编程技术 2025年3月29日
    000
  • html5有哪些清空画布的方法

    这次给大家带来html5有哪些清空画布的方法,html5中清空画布的注意事项有哪些,下面就是实战案例,一起来看一下。 总结以下三种清空注意事项画布的方式: 1. 最简单的方法:由于canvas每当高度或宽度被重设时,画布内容就会被清空,因此…

    编程技术 2025年3月29日
    100
  • html5怎样做出图片转圈的动画效果

    这次给大家带来html5怎样做出图片转圈的动画效果,h5做出图片转圈的动画效果的图片有哪些,下面就是实战案例,一起来看一下。 @@##@@@mixin ani-btnRotate{    @keyframes btnRotate{     …

    编程技术 2025年3月29日
    100
  • HTML5的下拉框应该如何增加用户体验

    这次给大家带来html5的下拉框应该如何增加用户体验,html5的下拉框增加用户体验的注意事项有哪些,下面就是实战案例,一起来看一下。 本文给大家讲h5、select下拉框右边加图标,深度美化页面增进用户体验效果 那么我们先来看一下效果吧!…

    编程技术 2025年3月29日
    100
  • 移动端h5轮播插件swipe实例详解

    swipe.js是一个轻量级js触摸滑动类库 – swipe js。这是一个非常小的一个javascript类库,但他的功能却不简单,它可以用来展示web页面上的任何内容,支持精确的触摸移动操作,而且还可以设置自动播放、等比例缩放等等实用性…

    编程技术 2025年3月29日
    100
  • 怎样用H5的WebGL实现3D虚拟机房的漫游动画

    这次给大家带来怎样用h5的webgl实现3d虚拟机房的漫游动画,用h5的webgl实现3d虚拟机房的漫游动画的动画有哪些,下面就是实战案例,一起来看一下。 第一人称在 3D 中的用法要参考第一人称在射击游戏中的使用,第一人称射击游戏(FPS…

    编程技术 2025年3月29日
    100
  • HTML5 Canvas实现360度全景方法

    本文主要介绍html5 canvas实现360度全景图的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 很多购物网站现在都支持360实物全景图像,可以360度任意选择查看样品,这样对…

    编程技术 2025年3月29日
    100
  • H5移动端页面点击input重复弹出键盘的实现方法

    本文主要和大家分享h5移动端页面加入canvas可滑动代码条件下android手机点击input重复弹出键盘,在移动端页面使用canvas的动画,为了实现动画的触摸滑动,会加入createjs.touch.enable(stage, tru…

    编程技术 2025年3月29日
    100
  • JS代码实现瀑布流插件

    瀑布流布局中的图片有一个核心特点—等宽不定等高,瀑布流布局在国内网网站都有一定规模的使用,比如pinterest、花瓣网等等。本文主要和大家详细分析了一个原生js实现瀑布流插件以及代码相关讲解,对此有兴趣的读者们参考学习下吧,希望能帮助到大…

    编程技术 2025年3月29日
    100
  • H5页面中尝试调起APP实例代码

    本文主要和大家分享h5页面中尝试调起app实例代码,希望能帮助到大家。 市面上常见的功能 这种功能现如今应该非常普遍了,淘宝H5,知乎H5等等。。。 点击后会调起APP或者打开下载页面或者直接进行下载。 但是我这里发现知乎的这个功能有点不一…

    2025年3月29日 编程技术
    100

发表回复

登录后才能评论