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

    文檔首頁>>VectorDraw Developer Framework使用教程>>VDF常見問題整理(十四):如何圍繞某個點(diǎn)旋轉(zhuǎn)折線中的頂點(diǎn)?

    VDF常見問題整理(十四):如何圍繞某個點(diǎn)旋轉(zhuǎn)折線中的頂點(diǎn)?


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

    VectorDraw Developer Framework試用版下載


    問:

    如何(通過代碼)可以圍繞某個點(diǎn)旋轉(zhuǎn)折線中的某些頂點(diǎn),保持其他頂點(diǎn)相同?

    答:

    這個問題非常簡單,您可以嘗試以下代碼:

          private void MyButton_Click(object sender, EventArgs e)
            {
                vdDocument doc = vdFramedControl1.BaseControl.ActiveDocument; doc.New();
                Vertexes vrts = new Vertexes();
                vrts.Add(1,1,0,0);vrts.Add(1,4,0,0);vrts.Add(4,4,0,0);vrts.Add(5,3,0,0);
                vdPolyline pl = new vdPolyline(doc, vrts);
                doc.Model.Entities.AddItem(pl);
                pl.Invalidate();
                //--------------- created the polyline ---------
               
                
                // rotate it for 45 degrees anti-clockwise around vertex[1]
                
                Vertexes orig_vert = new Vertexes(pl.VertexList);//get the vertex list of the polyline that will be changed
                gPoint pt1 = new gPoint(orig_vert[1] as gPoint);
           
                // Vertexes from Item 2 and above will change
                Vertexes keep = new Vertexes();
                keep.Add(new Vertex(orig_vert[0]));
                keep.Add(new Vertex(orig_vert[1]));
    
                double orig_angle = pt1.GetAngle( orig_vert[2] as gPoint); // new angle
                orig_angle += VectorDraw.Geometry.Globals.DegreesToRadians(45.0d);
    
                Matrix mat = new Matrix();
                mat.TranslateMatrix(-1.0d * pt1);
                mat.RotateZMatrix(orig_angle);
                mat.TranslateMatrix(pt1);
                mat.Transform(orig_vert); // this will produce the new vertexes
    
                for (int i = 0; i < 2; i++) { orig_vert[i] = keep[i]; // restore the vertexes that didn't changed } pl.VertexList = orig_vert; pl.Update(); pl.Invalidate(); }

    相關(guān)資料推薦:

    VectorDraw Developer Framework(VDF)示例

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

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