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

    文檔首頁>>VectorDraw Developer Framework使用教程>>VectorDraw Developer Framework常見問題整理(五十五):如何在動(dòng)作處于活動(dòng)狀態(tài)時(shí)使用鼠標(biāo)中鍵進(jìn)行平移

    VectorDraw Developer Framework常見問題整理(五十五):如何在動(dòng)作處于活動(dòng)狀態(tài)時(shí)使用鼠標(biāo)中鍵進(jìn)行平移


    VectorDraw Developer Framework(VDF)是一個(gè)用于應(yīng)用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創(chuàng)建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。該庫還支持許多矢量和柵格輸入和輸出格式,包括本地PDF和SVG導(dǎo)出。

    點(diǎn)擊下載VectorDraw Developer Framework


    問:動(dòng)作處于活動(dòng)狀態(tài)時(shí)如何使用鼠標(biāo)中鍵進(jìn)行平移?

    答:可以通過使用vdmoudown和vdmouseup事件來執(zhí)行此操作,因?yàn)闉榇?,您必須在要平移時(shí)暫?;顒?dòng)操作,然后將其恢復(fù)到當(dāng)前命令。一旦使用鼠標(biāo)中鍵進(jìn)行平移,而不是使用左鍵完成命令,就可能發(fā)生這種情況。在下面,可以看到一個(gè)示例。

     
        var vdcanvas = vdmanager.AttachCanvas('canvas');
           vdcanvas.vdmousedown = _vdmousedown; //set to the initialize page load
           vdcanvas.vdmouseup = _vdmouseup;
           vdcanvas.ActiveAction().PanMouseButton = vdConst.MouseMiddleButton; // set the middle mouse button for panning procedure
    
           function _vdmousedown(e) {
                var code = e.mousebutton; //get the mouse button code
                if (code === 2)vdcanvas.ActiveAction().Pause(); // middle mouse code is 2           
            }
    
            function _vdmouseup(e) { //resume the action when finishing the panning
                var code = e.mousebutton;
                if (code === 2)vdcanvas.ActiveAction().Resume();                             
            }

    問:3D中的XYZ坐標(biāo)軸始終以3D模式顯示在屏幕上。在2D模式下,根據(jù)平移動(dòng)作,平移動(dòng)作結(jié)束后XYZ坐標(biāo)軸可能會(huì)隱藏并重繪。這些軸是否可以像3D一樣在2D模式下工作?

    答:在平移過程中,我們有意讓W(xué)ire2D模式這樣工作,以提高繪制速度。在這種情況下(2D模式),VDF不重繪整個(gè)屏幕,而只是重繪一小部分,以便在2D模式下更快地繪制。你可以通過使用onScroll事件來繞過這一點(diǎn),比如。

     
       private void Form1_Load(object sender, EventArgs e)
    {
        ........
        vdFramedControl.BaseControl.ActiveDocument.OnScroll += ActiveDocument_OnScroll;
        ........
    }
    
    private void ActiveDocument_OnScroll(object sender, ref double cx, ref double cy, ref bool cancel)
    {
        cancel = true;
        VectorDraw.Render.vdRender render = sender as VectorDraw.Render.vdRender;
        if (render.PerspectiveMod == VectorDraw.Render.vdRender.VdConstPerspectiveMod.PerspectON)
        {
     
            VectorDraw.Geometry.Matrix m = new VectorDraw.Geometry.Matrix();
            m.TranslateMatrix(-cx, -cy, 0.0d);
            vdFramedControl.BaseControl.ActiveDocument.World2ViewMatrix *= m;
        }
        else
        {
            vdFramedControl.BaseControl.ActiveDocument.ViewCenter += new gPoint(cx, cy);
        }
        bool doRedrawNow = render.BreakOnMessage != VectorDraw.WinMessages.MessageManager.BreakMessageMethod.None;
        render.Invalidate(doRedrawNow);
    }

    使用這個(gè)事件和上面的代碼,XYZ坐標(biāo)軸將像3D一樣呈現(xiàn)在2D中。

    以上問答,如果您有任何的疑惑都可以在評(píng)論區(qū)留言,我們會(huì)及時(shí)回復(fù)。此系列的問答教程我們會(huì)持續(xù)更新,如果您感興趣,可以多多關(guān)注本教程。

    熱門文章推薦:

    =======================================================

    如果您對(duì)想要購(gòu)買正版授權(quán)VectorDraw Developer Framework(VDF),可以聯(lián)系在線客服>>咨詢相關(guān)問題。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();