HT for web 學習1

Api文档:https://www.hightopo.com/guide/doc/index.html

1.HT for web 是什麼?

ht是基于HTML5标准的企业应用图形界面一站式解决方案, 其包含通用组件、拓扑组件和3D渲染引擎等丰富的图形界面开发类库(并不開源),网上直接下载js包是没有用的,要授权!!!

实例:

1.拓扑图

<!DOCTYPE html>
<html>
    <head>
        <title>Animation</title>
        <meta charset="UTF-8">       
        <script src="js/ht.js"></script>
        <script src="js/easing.js"></script> 
        <script>                                        
            
            function init(){                                
                dataModel = new ht.DataModel();
                graphView = new ht.graph.GraphView(dataModel);
                graphView.addToDOM();  //将组件加入到指定的DOM元素底下,不指定则加入到 document.body 下
                view = graphView.getView();  //获取拓扑组件的根层div
         
               var toy = new ht.Node();   //new Node()拓扑图元类型
                toy.setImage('img/FIIicon.png');  //设置拓扑上展现的图片信息,在GraphView拓扑图中图片一般以position为中心绘制
                toy.setPosition(180, 140);   //设置图元中心点坐标
                dataModel.add(toy);                         
         /* 
                var select = document.createElement('select');  // 创建DOM对象  下面是样式设定
                select.style.position = 'absolute';
                select.style.top = '10px';
                select.style.right = '10px';
                view.appendChild(select);  // 在组件的根层div添加创建的DOM对象				
                for(var name in Easing){
                    var option = document.createElement('option');
                    option.innerHTML = name;
                    if(name === 'easeOut'){
                        option.setAttribute('selected', 'true');
                    }
                    select.appendChild(option);
                }                  
         
                graphView.setInteractors(null);    //setInteractors(interactors)设置交互器
                var type = "ontouchend" in document ? 'touchstart' : 'mousedown';                                
                
                isAnimating = false;   //是否使用动画
                view.addEventListener(type, function(e){       //addEventListener() 方法用于向指定元素添加事件句柄            
                    if(isAnimating || e.target === select || !ht.Default.isLeftButton(e)){
                        return;
                    }
                    e.preventDefault();
                    isAnimating = true;
                    var data = graphView.getDataAt(e);
                    var easing = Easing[select.value];
                    var finishFunc = function(){
                        isAnimating = false;
                    };
                    if(data === toy){
                        var size = toy.getSize();
                        ht.Default.startAnim({
                            frames: 30, 
                            interval: 16,
                            easing: easing,
                            finishFunc: finishFunc,                            
                            action: function(v){
                                toy.setRotation(Math.PI * v);
                                var r = Math.abs(v - 0.5) * 2;
                                toy.setSize(size.width * r, size.height * r);
                            }
                        });                        
                    }else{
                        var p2 = graphView.getLogicalPoint(e);
                        var p1 = toy.getPosition();
                        anim = ht.Default.startAnim({  
                            duration: 500,
                            easing: easing,
                            finishFunc: finishFunc,
                            action: function(v){
                                toy.setPosition(
                                    p1.x + (p2.x - p1.x) * v,
                                    p1.y + (p2.y - p1.y) * v
                                );
                            }
                        });                        
                    }
                }, false); */
                
                view.style.background = '#ccc';
                /* graphView.addTopPainter(function(g){
                    ht.Default.drawText(g, 'click anywhere you want ..', '24px Arial', 'lightgray', 50, 100, 0, 0, 'left');
                });      
                graphView.addBottomPainter(function(g){
                    ht.Default.drawText(g, 'click anywhere you want ..', '24px Arial', 'lightblue', 200, 180, 0, 0, 'left');
                });       */          
                
            }
                        

        </script>
    </head>
    <body onload="init();">
    </body>
</html>

2.初学 画3d

<!DOCTYPE html>
<html>
	<head>
		<title>Animation</title>
		<meta charset="UTF-8">
		<script src="js/ht.js"></script>
		<script src="js/easing.js"></script>
		<script>
			function init() {
				//数据容器(datamodel手册)
				dataModel = new ht.DataModel();
				//定义3d渲染引擎组件(3d手册)
				g3d = new ht.graph3d.Graph3dView(dataModel);
				g3d.addToDOM();  //将组件加入到指定的DOM元素底下,不指定则加入到 document.body 下
				view = g3d.getView();
				view.className = 'main';
				document.body.appendChild(view);
				var toy = new ht.Node();   //new Node()拓扑图元类型
				 toy.setPosition(1000, 100);   //设置图元中心点坐标
				 dataModel.add(toy);   
				 
				//监听图元变化,但是又不能在图元立马改变的时候就更新,而是每隔一段时
				//间异步刷新
				window.addEventListener('resize', function(e) {
					g3d.invalidate();
				}, false);
				
				//设置海平面
				g3d.setGridVisible(true);
				//设置可编辑为true
				g3d.setEditable(true);
				//设置观察视觉
				g3d.setEye([-82, 169, 327]);
				//决定目标中心点
				g3d.setCenter([-8, 48, 8]);
				

			}
		</script>
	</head>
	<body onload="init();">
	</body>
</html>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值