首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原 基于 HTML5 WebGL 3D

前言 现在棉花加工行业还停留在传统反应式维护模式当中,当棉花加下厂设备突然出现故障时,控制程序需要更换。...http://www.hightopo.com/demo/Plucker/ 代码实现  创建场景 首先是创建一个三维场景(https://hightopo.com/guide/guide/core/3d...window.addEventListener('resize', function () { self.iv(); }, false);//窗口大小改变事件,调用刷新函数 } 整个大环境搭建好了后,我们需要向场景中添加 3D...模型,并进行位置摆放,这里采用是将整个场景模型以及模型摆放放在一个 JSON 格式文件中,然后通过将这个 JSON 文件反序列化到数据容器 DataModel 中,即可呈现 JSON 文件中场景内容以及模型摆放位置...场景动画 因为整个场景中元素都是从此 JSON 文件中反序列化出来,此 JSON 文件中保存只有场景内容,并不包括动画以及交互,对于不同部分元素动画也不同,我们需要单独将这些元素取出来,这里通过

1.6K60

原 基于 HTML5 WebGL 3D

前言 用 WebGL 渲染 3D 机房现在也不是什么新鲜事儿了,这篇文章主要目的是说明一下,3D 机房中 eye 和 center 问题,刚好在项目中用上了,好生思考了一番,最终觉得这个例子最符合我要求...false,图标在3D下是否自动朝向眼睛方向 t3: [0, 16, 0],//默认值为undefined,图标在3D偏移,格式为[x,y,z] width.../设置图元在3D拓扑中z轴长度 door.setTall(s3[1]);//控制Node图元在y轴长度 door.setElevation(0);//设置图元中心在3D坐标系中y坐标...场景创建 如果熟悉同学应该知道,用 HT 创建一个 3D 场景只需要 new 一个 3D 组件,再将通过 addToDOM 函数将这个场景添加进 body 中即可: var g3d = E.main...= new ht.graph3d.Graph3dView(); //3d 场景 main.js 文件中主要做是在 3D 场景中一些必要元素,比如墙面,地板,门,空调以及所有的机柜生成和排放位置,还有非常重要交互部分

1.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于 HTML5 WebGL 3D “弹力”布局

    节点,通过设置这个节点 style 样式属性来控制节点显示方式,其中将“shape3d”设置为“sphere”即可将 ht.Node 六面体变成 3D 球体模型,再设置“shape3d”属性为前面定义随机颜色...,s3 是 HT 封装设置 3D 节点大小 setSize3d 函数简写,最后将这个节点添加进数据模型 dataModel 中: var createNode = function(dm) {//...根据 xy 平面的曲线,环绕一周形成 3D 环形模型,将其命名为‘custom’: ht.Default.setShape3dModel(//创建模型 根据xy平面的曲线,环绕一周形成3D模型。...();//获取图形上连接目标节点 pipeline.s('mat', createMatrix(node1.p3(), node2.p3(), 20));//3d整体图形矩阵变化 }; 最神秘是如何能做出让两个节点...3D 模型“custom” ,并将“layoutable”属性设置为“false”阻止图元参与布局,并将点之间连线通过edge.a('pipeline', node)重新刷新,并添加进数据模型 dataModel

    1K20

    基于 HTML5 WebGL 3D “弹力”布局

    节点,通过设置这个节点 style 样式属性来控制节点显示方式,其中将“shape3d”设置为“sphere”即可将 ht.Node 六面体变成 3D 球体模型,再设置“shape3d”属性为前面定义随机颜色...,s3 是 HT 封装设置 3D 节点大小 setSize3d 函数简写,最后将这个节点添加进数据模型 dataModel 中: var createNode = function(dm) {//...根据 xy 平面的曲线,环绕一周形成 3D 环形模型,将其命名为‘custom’: ht.Default.setShape3dModel(//创建模型 根据xy平面的曲线,环绕一周形成3D模型。...();//获取图形上连接目标节点 pipeline.s('mat', createMatrix(node1.p3(), node2.p3(), 20));//3d整体图形矩阵变化 }; 最神秘是如何能做出让两个节点...3D 模型“custom” ,并将“layoutable”属性设置为“false”阻止图元参与布局,并将点之间连线通过edge.a('pipeline', node)重新刷新,并添加进数据模型 dataModel

    1.4K90

    基于 HTML5 WebGL 3D 智慧城市

    上个月我们发布了一篇文章《基于HTML5 WebGL 构建智能城市 3D 场景》,大体介绍了如何使用ht.js 快速3D  建模,展示了良好可视化效果,今天继续探讨智慧城市应用。   ...上图主要以 2/3D联动方式,依次展示了在面对突发情况下,城市应急救援响应过程。...tag,使用ht.Default.startAnim()  来完成每一步动画效果,然后拼接动画即可实现上图中3D 动画效果。...常规2D 效果图已经不满足于当下需求了,伴随着大数据、云计算、5G、AI、边缘计算等技术发展成熟,3D  可视化更能直观、有效反馈信息。当然,3D可视化离不开一款强大图形引擎。...3D 漫游可以提供很好用户交互体验,所以本demo  也展示了这一功能。 借助于HT,漫游功能实现只要几行代码就可以实现了。

    1.7K40

    原 基于HTML5 Canvas3D动态

    看到有一个网站上在卖图表,感觉挺好看,就用 HT for Web 3D 做了一个小例子,挺简单,也挺好看,哈哈~ Demo 地址: http://www.hightopo.com/demo/WireframeAnim.../index.html 这个例子用 HT 实现真的很容易,首先创建一个 HT 中最基础 dm 数据模型,然后将数据模型添加进 g3d 3d 组件中,再设置 3d视角并把 3d 组件添加进 body...,里层有一个节点,外层一个透明节点,底部一个 3d 文字显示当前百分比。...,'shape3d':cylinderModel 这个样式设置,首先,shape3d 属性指定显示为 3d 模型图标效果,cylinderModel 是用 HT 自定义一个 3d 模型,可参考 HT...最后是 3d 文字,呈现 3d 文字需要一个 json 格式 typeface 字体,然后通过 ht.Default.loadFontFace 来加载 json 格式字体到内存中,详情请参考 HT

    1K20

    基于 HTML5 3D 工控隧道案例

    我是用 HT 做整个例子,首先创建 3D 场景,HT 有 3D 组件,可以直接通过 new ht.graph3d.Graph3dView 3D 组件来创建一个实例,然后通过 getView() 函数获取组件底层...= new ht.graph3d.Graph3dView(dm);//3D 组件 g3d.addToDOM();//将 3D 组件底层 div 添加到 body 中 HT 组件一般都会嵌入 BorderPane...data.r3(0, (data.r3()[1]+Math.PI/12), 0);//r3 为 3d旋转,这里 y 轴在原来基础上再旋转 Math.PI/12 角度 }else if(tag...== 1){//做判断是根据3d事件来处理,等下会提 dm.getDataByTag('light').s({//通过getDataByTag获取节点,设置节点style样式...内容显示图标为form表单上点击交通灯按钮图标 } 最后就是点击事件了,一个是点击 3D交通灯后出现交通灯控制 form 表单,还有一个就是点击 form 表单上“修改状态”中图标事件

    80020

    基于HTML53D网络拓扑树呈现

    在HT for Web中2D和3D应用都支持树状结构数据展示,展现效果各异,2D上树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定节点比较困难,而3D树状结构在展现上配合...所以这时候结构清晰3D需求就来了,那么这个3D树具体长成啥样呢,我们来一起目睹下~ ? 要实现这样效果,该从何下手呢?接下来我们就将这个问题拆解成若干个小问题来解决。 1....在2D拓扑下模拟3D树状结构每层半径计算 在3D树状结构体最大问题就在于,每个节点层次及每层节点围绕其父亲节点半径计算。...加入z轴坐标,呈现3D树状结构 3D拓扑上面布局无非就是多加了一个坐标系,而且这个坐标系只是控制节点高度而已,并不会影响到节点之间重叠,所以接下来我们来改造下我们程序,让其能够在3D上正常布局...布局后布局器代码,你会发现和2D布局器代码就差一个坐标系计算,其他都一样,看下在3D上布局效果: ?

    1.4K100

    基于 HTML5 + WebGL 宇宙 3D 展示系统

    本系统采用 Hightopo HT for Web 产品来构造轻量化 3D 可视化场景。...2.作为宇航局、航空航天相关研究机构驾驶舱,在 3D 可视化界面中对行星相对位置、星体状态、星体气象、星体地形有一个直观快速了解,在宇宙空间探索越来越成功的当下,在数据传输技术得到速度和质量上突破后...,点位周边等高线在左侧自动生成一个 3D 地形和闪烁点位示意,并与右侧检测点位一一对应。...点选右侧对应检测点,会触发右侧点缩放动画,同时左侧对应 3D 点位也会同步变化,其它点则调用 setAnimation(null) //......库,矢量平面信息与 3D 对象进行关联,并采用 3D 拓扑可视化呈现,相对位置清晰直观,3D 地形与等高线图对应,海拔高度和相互遮挡关系都可以准确把握。

    69610

    基于HTML53D网络拓扑自动布局

    上篇将HT for Web3D拓扑弹力布局算法运行在Web Workers后台(http://www.hightopo.com/blog/70.html),这篇我们将进一步折腾,将算法运行到真正后台...Node.js自然没那么简单了,我采用了Socket.io通信框架,Socket.io让长连接通信变得无比简单,和Web Workers通信几乎一样容易了,Socket.io用法下图一目了然: ?...插件都是可运在Web Workers和Node.js非GUI环境,因为我也常需要ht.js运行在后台直接将DataModel数据和前台进行JSON数据格式转换存储。.../util.js").reloadModel; 这样方式得到该函数进行调用,细节可以参考 http://nodejs.org/api/modules.html 章节 3、这个例子是有缺陷,以下视频播放过程你会发现...另一个页面无法操作原因。

    1.4K70

    基于HTML53D网络拓扑树呈现

    在HT for Web中2D和3D应用都支持树状结构数据展示,展现效果各异,2D上树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定节点比较困难,而3D树状结构在展现上配合...所以这时候结构清晰3D需求就来了,那么这个3D树具体长成啥样呢,我们来一起目睹下~ ? 要实现这样效果,该从何下手呢?接下来我们就将这个问题拆解成若干个小问题来解决。 1....在2D拓扑下模拟3D树状结构每层半径计算 在3D树状结构体最大问题就在于,每个节点层次及每层节点围绕其父亲节点半径计算。...加入z轴坐标,呈现3D树状结构 3D拓扑上面布局无非就是多加了一个坐标系,而且这个坐标系只是控制节点高度而已,并不会影响到节点之间重叠,所以接下来我们来改造下我们程序,让其能够在3D上正常布局...布局后布局器代码,你会发现和2D布局器代码就差一个坐标系计算,其他都一样,看下在3D上布局效果: ?

    1.4K20

    基于 HTML5 Canvas 3D 模型列表贴图

    ,如果不存在,则返回-1 } return true; });  第三个部分,右侧 3d 场景,利用是 HT 三维组件 ht.graph3d.Graph3dView,然后在 3d 场景上添加两个节点...,作为对照: //创建两个节点放到 3d 场景中 var node = new ht.Node(); node.s3(30, 30, 30);//设置三维大小 node.p3(-30, 15, 0);/...添加进 3d 场景数据容器中 var node = new ht.Node(); node.s3(30, 30, 30); node.p3(30, 15, 0);...);//设置网格线颜色 整个场景创建完毕,接下来就是将 listView 中显示 icon 图标拖拽到 3d节点上,作为贴图。...if(lastFaceInfo){//鼠标未松开情况下,贴图显示旧值 //data.face 默认值为front,图标在3D朝向,可取值left|right|top

    1.5K100

    基于 HTML5 Canvas 3D 碰撞检测

    我们来看看如何操作这个 3d 交互模型,可以直接滑动“Rotation”滑动条,你会看到 3d 和左下角 2d 上图元都会旋转,接着点击“Axis”中任意一个值,然后点击“Animate”,你会看到中间这个图元会旋转...左下角是整个 3d 场景内俯视图,这样我们可以非常直观地看清图元移动方向和位置。 可能你会好奇这个是怎么俯视图是怎么放上去?如果 3d图元变化,这个俯视图中图元也会跟着变化么?...如何把右上角 form 表单和左下角视图又是怎么放?如何只移动 3d 二把这两个固定在这边?...好了,基础就是先布局,布 3d 场景,HT 在提供方法方面算是非常细致了,平时我们生成网格可能就要花费一段时间,又是基础代码,新手开发人员都能很快上手呢~短短几行代码就能创建一个 3d 场景,简直太快...,这个例子中,form 表单、2d 组件和3d 组件都互不依附,所以我们直接将这三个都添加进 body 中即可,还有一点值得注意,所有 HT 组件最根层都是一个 div,是通过组件 getView

    97150

    基于HTML5燃气3D培训仿真系统

    最近上线了基于HTML5燃气3D培训仿真系统,以前老系统是采用基于C++和OpenGLOpenSceneGraph引擎设计,OSG引擎性能和渲染效果各方面还是不错,但因为这次新产品需求要求能运行多移动终端...系统最终采用HT for Web3D框架实现,项目中程序员也很高兴有这样机会终于摆脱维护MFC老系统宿命,虽然大家都只有C++开发经验,对HTML/CSS/JS并不熟悉,但毕竟HT for Web...让我感觉比较爽是控制3D图元部分,以前不同设备类型得体力活写一堆代码,才能好不容易实现些旋转移动等操作控制,界面控件和3D模型之间数据同步也得费不少劲,现在用js这种动态语言真是非常灵活,界面都可以非常方面的动态生成...,加上HT for Web统一数据模型自动就能处理好3D图元与控件之间数据绑定和联动,我干起活来就像搭积木一样轻松,脑子里想就是业务功能和业务数据,不用再去折腾不同组件如何同步这些数据,控件也无需做什么特殊扩展...当然目前项目还仅仅是初版移植,业务功能上还未有太大创新,但就目前进度我们已经体会到HTML5开发快速性,js语言也不是想象中那么弱,团队控制好一定编码规范后js灵活性带来开发进度提高还是非常显著

    1.2K50

    基于 HTML5 Canvas 3D WebGL 机房创建

    对于 3D 机房来说,监控已经不是什么难事,不同的人有不同做法,今天试着用 HT 写了一个基于 HTML5 机房,发现果然 HT 简单好用。...本例是将灯光、雾化以及 eye 最大最小距离等等功能在 3D 机房中进行一个综合性例子。接下来我将对这个例子实现进行解析,算是自己对这个例子一个总结吧。...工具条类中,下部分是 3D 部分 ht.graph3d.Graph3dView 组件,将页面中两个部分通过下面的方式添加进 BorderPane 组件中,并将 BorderPane 添加进 body...首先,对 3d 组件添加了过滤函数,对双击事件元素过滤: ?...这个 3d 机房例子非常有代表性,性能也展示得很全面,觉得有必要拿出来讲一下,希望能对你们有一定帮助~

    1.6K70

    基于 HTML5 + WebGL 3D 风力发电场

    需要注意是,本次项目是使用 Hightopo HT for Web 产品来搭建。...场区分布页面又包括两个不同 3D 场景,分别是陆地风机场和海上风机场。点击两个 3D 风机场最终都会进入到 3D 风机场景。 ? 预览效果 首页: 1. 世界地图效果 ? 2. 中国地图效果 ?...3D 图纸 ht.Default.removeHTML(g3d) gv.addToDOM() ht.Default.xhrLoad(`displays/HT-project_2019...这里需要注意是, 执行 stop 之后,会调用一次 finishFunc 回调函数。 当我们 2D 图纸里面包含 3D 背景情况下,需要判断是否已经存在了 3D 实例,如果存在不需要再次创建。...有兴趣可以了解一下 webGL 应用内存泄漏问题。 当进入两个 3D 场景场景时候,我们需要一个开场动画,如开头效果 gif 图一样。

    1.3K10

    基于 HTML5 Canvas 3D 模型贴图问题

    之前注意到一个例子,但是一直没有沉下心来看这个例子到底有什么优点,总觉得就是一个 list 列表,也不知道右边 3d 场景放两个节点是要干嘛,今天突然想起来就仔细地看了一下这个例子代码,实际操作中应该还是有用处...,如果不存在,则返回-1 } return true; });  第三个部分,右侧 3d 场景,利用是 HT 三维组件 ht.graph3d.Graph3dView,然后在 3d 场景上添加两个节点...添加进 3d 场景数据容器中 var node = new ht.Node(); node.s3(30, 30, 30); node.p3(30, 15, 0);...);//设置网格线颜色 整个场景创建完毕,接下来就是将 listView 中显示 icon 图标拖拽到 3d节点上,作为贴图。...if(lastFaceInfo){//鼠标未松开情况下,贴图显示旧值 //data.face 默认值为front,图标在3D朝向,可取值left|right|top

    1K20
    领券