• <menu id="w2i4a"></menu>
  • logo LEADTOOLS使用教程

    文檔首頁(yè)>>LEADTOOLS使用教程>>LEADTOOLS使用教程:3D網(wǎng)格的創(chuàng)建與保存

    LEADTOOLS使用教程:3D網(wǎng)格的創(chuàng)建與保存


    1. 讓我們以您在“創(chuàng)建一個(gè)3D對(duì)象”這一章中所創(chuàng)建的項(xiàng)目為開(kāi)始吧。

    2. 現(xiàn)在,請(qǐng)運(yùn)行該程序。您將會(huì)看到一個(gè) 2x2 的布局,其中的每一個(gè)間隙都是以3D對(duì)象為填充的。該3D對(duì)象是使用VRT技術(shù)(容積重組技術(shù))來(lái)呈現(xiàn)的。

    3. 將該3D對(duì)象轉(zhuǎn)換為網(wǎng)格。這是通過(guò)將容積類型轉(zhuǎn)換為SSD(遮蔽表面顯示法)來(lái)完成的。請(qǐng)?jiān)贗nitClass() 方法的末尾添加以下這些行的代碼:

    [Visual Basic]

      ' 將渲染對(duì)象的容積類型更改為SSD。
                control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD

    [C#]     

      // 將渲染對(duì)象的容積類型更改為SSD。
                control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD;

    4. 由于將對(duì)象轉(zhuǎn)換為網(wǎng)格是一個(gè)相當(dāng)耗費(fèi)時(shí)間的過(guò)程,您可能需要將以下代碼添加于以上的步驟(3)之前。

    [Visual Basic]

       this.Show()
                this.Update()           

    [C#]     

      this.Show();
                this.Update();

    5.現(xiàn)在您已經(jīng)創(chuàng)建了一個(gè)3D網(wǎng)格。要想改變其表面,您需要使用的是Medical3DObject.Slab.IsoThreshold屬性。

    6.保存該網(wǎng)格。為了保存該網(wǎng)格,您只需要在InitClass()的末尾添加以下這一行代碼:

    [Visual Basic]           

    // 將該網(wǎng)格以這個(gè)名稱TestMesh進(jìn)行保存。
                control3D.ObjectsContainer.Objects[0].SSD.SaveMesh("C:\TestMesh.x")

    [C#]        

     // 將該網(wǎng)格保存為一個(gè)文件。
                control3D.ObjectsContainer.Objects[0].SSD.SaveMesh(@"C:\TestMesh.x");

    7.該initClass() 方法應(yīng)該如下所示:

    [Visual Basic]           

    Private Sub InitClass()
                     Dim MY_LICENSE_FILE As String = "d:\temp\TestLic.lic"
                     
                     ' 開(kāi)啟DICOM支持。
                     Dim MY_DicomDEVELOPER_KEY As String = "xyz123abc"
                     RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);
                     
                     ' 開(kāi)啟Medical支持。
                     Dim MY_MedicalDEVELOPER_KEY As String = "abc123xyz"
                     RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);
                     
                     ' 開(kāi)啟Medical 3D支持。
                     Dim MY_3DDEVELOPER_KEY As String = "123xyzabc"
                     RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);
                     
                     ' 創(chuàng)建一個(gè)將被用于加載圖像的編解碼器類的新實(shí)例。
                     Dim _codecs As RasterCodecs = New RasterCodecs()
                     ' 創(chuàng)建一個(gè)MedicalViewer的新實(shí)例。該查看器布局將被劃分為2X2。     
                       Dim viewer As MedicalViewer = New MedicalViewer(2, 2)
                     ' 使該視圖與整個(gè)窗體相匹配。
                     viewer.Dock = DockStyle.Fill
                     ' 創(chuàng)建一個(gè)包含3D對(duì)象的3D控件。
                     Dim control3D As Medical3DControl = New Medical3DControl()
                     control3D.AddAction(MedicalViewerActionType.WindowLevel)
                     control3D.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
                     Dim object3D As Medical3DObject = New Medical3DObject()
                     ' 將新創(chuàng)建的3D對(duì)象添加到控件。
                     control3D.ObjectsContainer.Objects.Add(object3D)
                     object3D.Image = _codecs.Load("C:\Users\Public\Documents\LEADTOOLS Images\image1.dcm")
                     '  將以上單元格添加到MedicalViewer。
                     viewer.Cells.Add(control3D)
                     Controls.Add(viewer)
                     
                     Me.Show()
                     Me.Update()
                     
                     ' 將渲染對(duì)象的容積類型更改為SSD。
                     control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD
                     
                     ' 將該網(wǎng)格保存為一個(gè)文件。
                     control3D.ObjectsContainer.Objects(0).SSD.SaveMesh("C:\TestMesh.x")
                End Sub

    [C#]          

    void InitClass()
                {
                     string MY_LICENSE_FILE = "d:\\temp\\TestLic.lic";
                   
                     // 開(kāi)啟DICOM支持。
                     string MY_DicomDEVELOPER_KEY = "xyz123abc";
                     RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);
                     
                     // 開(kāi)啟Medical支持。
                     string MY_MedicalDEVELOPER_KEY = "abc123xyz";
                     RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);
                     
                     // 開(kāi)啟Medical 3D支持。
                     string MY_3DDEVELOPER_KEY = "123xyzabc";
                     RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);
                     
                     // 創(chuàng)建一個(gè)將被用于加載圖像的編解碼器類的新實(shí)例。
                     RasterCodecs _codecs = new RasterCodecs();
                     // 創(chuàng)建一個(gè)MedicalViewer的新實(shí)例。該查看器布局將被劃分為2X2。
                     MedicalViewer viewer = new MedicalViewer(2, 2);
                     // 使該視圖與整個(gè)窗體相匹配。
                     viewer.Dock = DockStyle.Fill;
                     // 創(chuàng)建一個(gè)包含3D對(duì)象的3D控件。
                     Medical3DControl control3D = new Medical3DControl();
                     control3D.AddAction(MedicalViewerActionType.WindowLevel);
                     control3D.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
                     Medical3DObject object3D = new Medical3DObject();
                     // 將新創(chuàng)建的3D對(duì)象添加到控件。
                     control3D.ObjectsContainer.Objects.Add(object3D);
                     object3D.Image = _codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\image1.dcm");
                     // 將以上單元格添加到MedicalViewer。
                     viewer.Cells.Add(control3D);
                     Controls.Add(viewer);
                     
                     this.Show();
                     this.Update();
                     
                     // 將渲染對(duì)象的容積類型更改為SSD。
                     control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD;
                     
                     // 將該網(wǎng)格保存為一個(gè)文件。
                     control3D.ObjectsContainer.Objects[0].SSD.SaveMesh(@"C:\TestMesh.x");
                }

    運(yùn)行該程序,您將會(huì)看到一個(gè)2×2的布局,其中包含一個(gè)以3D對(duì)象為填充的插槽。該3D對(duì)象是使用SSD技術(shù)(遮蔽表面顯示法)來(lái)呈現(xiàn)的。

    本文轉(zhuǎn)自iceman

    購(gòu)買(mǎi)最新正版授權(quán)!"咨詢?cè)诰€客服"

    慧都年終盛典火爆開(kāi)啟,一年僅一次的最強(qiáng)促銷,破冰鉅惠不容錯(cuò)過(guò)??!優(yōu)惠詳情點(diǎ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); })();