原創|使用教程|編輯:李顯亮|2020-09-11 13:58:46.410|閱讀 194 次
概述:本系列教程整理了VectorDraw Developer Framework(VDF)最常見問題,教程整理的很齊全,非常適合新手學習。本文將會介紹如何在動作處于活動狀態時使用鼠標中鍵進行平移,以及如何在平移期間使XYZ坐標以3D形式顯示在2D中。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VectorDraw Developer Framework(VDF)是一個用于應用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。該庫還支持許多矢量和柵格輸入和輸出格式,包括本地PDF和SVG導出。
點擊下載VectorDraw Developer Framework
問:動作處于活動狀態時如何使用鼠標中鍵進行平移?
答:可以通過使用vdmoudown和vdmouseup事件來執行此操作,因為為此,您必須在要平移時暫停活動操作,然后將其恢復到當前命令。一旦使用鼠標中鍵進行平移,而不是使用左鍵完成命令,就可能發生這種情況。在下面,可以看到一個示例。
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坐標軸始終以3D模式顯示在屏幕上。在2D模式下,根據平移動作,平移動作結束后XYZ坐標軸可能會隱藏并重繪。這些軸是否可以像3D一樣在2D模式下工作?
答:在平移過程中,我們有意讓Wire2D模式這樣工作,以提高繪制速度。在這種情況下(2D模式),VDF不重繪整個屏幕,而只是重繪一小部分,以便在2D模式下更快地繪制。你可以通過使用onScroll事件來繞過這一點,比如。
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); }
使用這個事件和上面的代碼,XYZ坐標軸將像3D一樣呈現在2D中。
以上問答,如果您有任何的疑惑都可以在評論區留言,我們會及時回復。此系列的問答教程我們會持續更新,如果您感興趣,可以多多關注本教程。熱門文章推薦:
=======================================================
如果您對想要購買正版授權VectorDraw Developer Framework(VDF),可以聯系咨詢相關問題。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn