• <menu id="w2i4a"></menu>
  • logo VectorDraw Developer Framework使用教程

    文檔首頁>>VectorDraw Developer Framework使用教程>>VDF常見問題整理(五):如何更改視圖旋轉(zhuǎn)的方式?

    VDF常見問題整理(五):如何更改視圖旋轉(zhuǎn)的方式?


    VectorDraw Developer Framework(VDF)是一個(gè)用于應(yīng)用程序可視化的圖形引擎庫(kù)。有了VDF提供的功能,您可以輕松地創(chuàng)建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。

    VectorDraw Developer Framework試用版下載


    問:

    是否能夠在轉(zhuǎn)動(dòng)圓圈的情況下,在View3D VROT中更改視圖旋轉(zhuǎn)的方式?

    答:

    可以通過覆蓋VectorDrawBaseControl的vdKeyDown事件來完成。

    例:

    (假設(shè)我們?cè)诒韱慰丶现刑砑恿艘粋€(gè)帶有vdFramedControl的表單)

    在以下示例中:

    • 當(dāng)用戶按住Alt鍵,按左箭頭鍵或右箭頭鍵時(shí),視圖將在活動(dòng)視圖的Y軸上旋轉(zhuǎn)。

    • 當(dāng)用戶按住Alt鍵,按下向上或向下箭頭鍵時(shí),視圖將在活動(dòng)視圖的X軸上旋轉(zhuǎn)。

    • 當(dāng)用戶按住控制鍵的同時(shí)按下左箭頭鍵或右箭頭鍵時(shí),視圖將在活動(dòng)視圖的Z軸上旋轉(zhuǎn)。

    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;
            }
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();