温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

TE如何动态标绘锥形

发布时间:2022-01-13 17:22:38 来源:亿速云 阅读:96 作者:小新 栏目:大数据

这篇文章主要介绍TE如何动态标绘锥形,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

TE二次开发中,可以标绘三维锥形,能够按照TE中操作的方式进行锥形的标绘。

TE如何动态标绘锥形

具体在BS中的javascript代码实现如下:

添加操作的事件:

//左键、右键、实时刷新

sgworld.AttachEvent("OnLButtonDown", OnLButtonDown);

sgworld.AttachEvent("OnRButtonDown", OnRButtonDown);

sgworld.AttachEvent("OnFrame", OnFrame);

//左键事件

function OnLButtonDown(Flags,X,Y)

{

//是否开始标绘的标志

   if(cflag)

{

   var Iwordpoint= sgworld.Window.PixelToWorld(X,Y,0);

  if(Cone==null)

    {

var nLineColor = 0xFF0000FF; 

//创建锥形对象

Cone=sgworld.Creator.CreateCone(Iwordpoint.Position,1,0,nLineColor,nLineColor,12,0,"circle"); 

 }

  else

 {

 var dis = sgworld.CoordServices.GetDistance(Cone.Position.X, Cone.Position.Y, Iwordpoint.Position.X, Iwordpoint.Position.Y);

//判断先画底部的圆

  if(hflag)

   {

var dis1 = sgworld.CoordServices.GetDistance(0, Cone.Position.Y, 0, Iwordpoint.Position.Y);

Cone.Height=dis;

cflag = false;

}

       //设置半径和圆锥的高度

if (Cone.Height == 0&&!hflag) {

Cone.Radius = dis;

Cone.Height=dis;

hflag=true;

}

  }

}

}

//右键事件,结束画锥形

function OnRButtonUpp(Flags,X,Y)

cflag = false;

 Cone=null;

hflag=false;

}

//实时刷新事件

 function Onframe()

         {

if(cflag)

{

//底部圆的半径变换

if(Cone!=null)

{

var Imousinfo = sgworld.Window.GetMouseInfo();

var Iwordpoint = sgworld.Window.PixelToWorld(Imousinfo.X, Imousinfo.Y, 0);

//根据距离变换半径

var dis =  sgworld.CoordServices.GetDistance(Cone.Position.X, Cone.Position.Y, Iwordpoint.Position.X, Iwordpoint.Position.Y);

if (Cone.Height == 0&&!hflag) {

Cone.Radius = dis;

}

       if(hflag)

{

      //高度变化

var dis1 = Imethod.getdistance(0, Cone.Position.Y, 0, Iwordpoint.Position.Y);

Cone.Height=dis1;

       }

   }

  }

}

以上是“TE如何动态标绘锥形”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

te
AI