您好,登錄后才能下訂單哦!
這篇文章主要介紹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如何動態標繪錐形”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。