翻譯|使用教程|編輯:況魚杰|2019-08-14 14:46:05.117|閱讀 348 次
概述:本系列教程整理了VectorDraw Developer Framework(VDF)最常見問題,教程整理的很齊全,非常適合新手學習,本節教程將會介紹如何在能夠轉動圓圈的情況下,并在View3D VROT中更改視圖旋轉的方式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VectorDraw Developer Framework(VDF)是一個用于應用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。
VectorDraw Developer Framework試用版下載
問:
是否能夠在轉動圓圈的情況下,在View3D VROT中更改視圖旋轉的方式?
答:
可以通過覆蓋VectorDrawBaseControl的vdKeyDown事件來完成。
例:
(假設我們在表單控件集合中添加了一個帶有vdFramedControl的表單)
在以下示例中:
當用戶按住Alt鍵,按左箭頭鍵或右箭頭鍵時,視圖將在活動視圖的Y軸上旋轉。
當用戶按住Alt鍵,按下向上或向下箭頭鍵時,視圖將在活動視圖的X軸上旋轉。
當用戶按住控制鍵的同時按下左箭頭鍵或右箭頭鍵時,視圖將在活動視圖的Z軸上旋轉。
private void Form1_Load(object sender, EventArgs e) { vdFramedControl.BaseControl.vdKeyDown += new VectorDraw.Professional.Control.KeyDownEventHandler(BaseControl_vdKeyDown); } void BaseControl_vdKeyDown(KeyEventArgs e, ref bool cancel) { BaseAction action = doc.ActiveLayOut.OverAllActiveAction; if(action == null) return; Matrix curmat = new Matrix( action.Render.CurrentMatrix); bool done = false; if (e.Alt && e.KeyCode == Keys.Left) { curmat.RotateYMatrix(Globals.VD_PI_OVER_180 * 10 * 1.0d); done = true; } else if (e.Alt && e.KeyCode == Keys.Right) { curmat.RotateYMatrix(Globals.VD_PI_OVER_180 * 10 * -1.0d); done = true; } else if (e.Alt && e.KeyCode == Keys.Up) { curmat.RotateXMatrix(Globals.VD_PI_OVER_180 * 10 * 1.0d); done = true; } else if (e.Alt && e.KeyCode == Keys.Down) { curmat.RotateXMatrix(Globals.VD_PI_OVER_180 * 10 * -1.0d); done = true; } else if (e.Control && e.KeyCode == Keys.Left) { curmat.RotateZMatrix(Globals.VD_PI_OVER_180 * 10 * -1.0d); done = true; } else if (e.Control && e.KeyCode == Keys.Right) { curmat.RotateZMatrix(Globals.VD_PI_OVER_180 * 10 * 1.0d); done = true; } if (!done) return; action.Render.CurrentMatrix = curmat; doc.Redraw(true); cancel = true; }
關注慧聚IT微信公眾號 ???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: