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