您好,登錄后才能下訂單哦!
小編給大家分享一下TE開發中如何創建攝像頭視野,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在三維的系統中,有時會掛接攝像頭的信息,模擬現實攝像頭的視野,模擬攝像頭在三維中的上下左右移動,模擬拉近攝像頭的視野。
以下是C#的代碼實現:
//鼠標點擊獲取位置,設置高度為相對
IWorldPointInfo6 Iworldinfo = sgworld.Window.PixelToWorld(X, Y, WorldPointType.WPT_DEFAULT);
Iworldinfo.Position.AltitudeType = AltitudeTypeCode.ATC_TERRAIN_RELATIVE;
Iworldinfo.Position.Altitude = 10;
//創建一個攝像頭的模型
ITemodel = sgworld.Creator.CreateModel(Iworldinfo.Position, 模型文件路 徑, 1, ModelTypeCode.MT_NORMAL, 0, "shipin");
//設置攝像頭的向上視角
Iworldinfo.Position.Pitch = -90;
rtapos = Iworldinfo.Position.Copy();
//創建顏色
IColor6 crtcolor = sgworld.Creator.CreateColor(Color.LightBlue.R, Color.LightBlue.G, Color.LightBlue.B, 120);
//創建椎體效果
ITeRegBase = sgworld.Creator.CreateCone(Iworldinfo.Position, 2, 5, crtcolor, crtcolor, -1, 0, "shizhui");
//將椎體綁定到模型上,并飛到模型
ITeRegBase.Attachment.AttachTo(ITemodel.ID, 0, 5, 0);
sgworld.Navigate.FlyTo(ITemodel);
//攝像頭和椎體的左移
ITemodel.Position.Yaw += 10;
ITeRegBase.Position.Pitch = rtapos.Pitch;
ITeRegBase.Position.Yaw += 10;
//攝像頭和椎體的收縮
ITeRegBase.Height += 1;
ITeRegBase.Attachment.AttachTo(ITemodel.ID, 0, ITeRegBase.Height,
0);
ITeRegBase.Position.Pitch = rtapos.Pitch;
ITeRegBase.Radius -= 0.3;
//攝像頭和椎體的上俯視
if (rtapos.Pitch > -130.0 && rtapos.Pitch < -35.0)
{
rtapos.Pitch -= 9;
ITeRegBase.Position.Pitch = rtapos.Pitch;
ITeRegBase.Attachment.AttachTo(ITemodel.ID, 0,
ITeRegBase.Height, 0);
ITemodel.Position.Pitch -= 9;
}
攝像頭的效果圖:
以上是“TE開發中如何創建攝像頭視野”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。