成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb.net編的3d vbnet using

求教 vb.net 3d數(shù)字組合問(wèn)題,在線(xiàn)等

這個(gè)我可以做。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)梁山,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):13518219792

奇偶我知道是什么意思

大小我就不明白了。怎么算大大小呢?

VB.net怎么進(jìn)行實(shí)時(shí)的3D曲面繪圖

這份文件列出了參數(shù)在PowerMILL提供。 表1 列出一般PowerMILL參數(shù), 表2 列出了有效的PowerMILL安裝額外的參數(shù)表。 表1。 PowerMILL參數(shù)。 標(biāo)識(shí)符說(shuō)明 (AdditionalStock)最大厚度的股票估計(jì)要去除刀具路徑。這是用來(lái)作為一種輔助手

VB.net可以開(kāi)發(fā)小型3D圖形顯示軟件嗎?

可以借助DirectX來(lái)編程。免費(fèi)3D引擎可不好找,一般來(lái)說(shuō)速度比不上硬件加速后的DX,尤其令人頭疼的是一般都沒(méi)有針對(duì)VB的文檔,LZ有這方面理想的話(huà),自己寫(xiě)一個(gè)吧……

我不得不承認(rèn)在VB上寫(xiě)DirectX的教程相當(dāng)難找!如果LZ想深入研究三維圖形問(wèn)題,C++一定要學(xué),就算不能用C++編程,起碼要能把C++程序翻譯成VB程序。

我自己學(xué)會(huì)DX編程花了兩三個(gè)月(很淺)。編這樣一個(gè)程序難度是有點(diǎn)大的。

工具:DirectX9和其針對(duì)VB的庫(kù)(項(xiàng)目-添加引用。.NET庫(kù)里DX庫(kù)一般都有),VB不知道現(xiàn)在支不支持DX10以上的版本,不過(guò)9絕對(duì)夠用了。

思路:一切3D圖形都是由三角形拼成的。矩形挖掉一個(gè)圓孔可不是一個(gè)方便畫(huà)的圖形,我估計(jì)至少得有24個(gè)三角形。你需要記錄這些點(diǎn)的坐標(biāo),或者干脆把它們寫(xiě)在文件里,到時(shí)讀出來(lái)。

這是我的一個(gè)老DX程序的不完全的代碼(顯示一個(gè)黑乎乎的平面),不一定能編譯,可以參考一下。

Imports Microsoft.DirectX '一定要~

Public Class FormMain

'Direct3D Startup

Dim d3dpp As New Direct3D.PresentParameters 'DX基本參數(shù),例如全屏還是窗口等

Public MyDevice As Direct3D.Device ‘DX基本設(shè)備,畫(huà)圖就靠它。

'Matrices

Dim matWorld, matView, matProj As Matrix '世界位置矩陣,攝像機(jī)位置矩陣和透視矩陣,數(shù)學(xué)要學(xué)好啊。

'mesh

Public MyPlane as Direct3D.Mesh ’我們的物體

Public VBPlane(3) As Direct3D.CustomVertex.PositionNormalTextured '存放頂點(diǎn)位置的數(shù)組

#Region "DX Core"

Public Sub InitDeviceObjects()

With d3dpp ‘以下請(qǐng)照抄。

.Windowed = True ‘不全屏。

.SwapEffect = Direct3D.SwapEffect.Discard ’雙緩沖交換效果。請(qǐng)百度“雙緩沖”

.BackBufferFormat = Direct3D.Format.Unknown

.EnableAutoDepthStencil = True ’讓DX自動(dòng)管理深度緩沖

.AutoDepthStencilFormat = Direct3D.DepthFormat.D16

End With

MyDevice = New Direct3D.Device(0, Direct3D.DeviceType.Hardware, Me.Handle, Direct3D.CreateFlags.HardwareVertexProcessing, d3dpp) '創(chuàng)建DX設(shè)備啦!以下兩句請(qǐng)照抄。

MyDevice.SetRenderState(Direct3D.RenderStates.ZEnable, True) ‘Z緩沖

MyDevice.SetRenderState(Direct3D.RenderStates.NormalizeNormals, True)'法線(xiàn)歸一化,請(qǐng)看相關(guān)數(shù)學(xué)書(shū)籍。

End Sub

Public Sub RestoreDeviceObjects()

Dim PlaneIB() As Short = {0, 1, 3, 0, 2, 3} ’頂點(diǎn)索引信息。

Dim AttrTable(1) As Direct3D.AttributeRange ‘頂點(diǎn)分組屬性表

AttrTable(0).AttributeId = 0

AttrTable(0).FaceStart = 0

AttrTable(0).FaceCount = 2 ’有兩個(gè)三角形

AttrTable(0).VertexStart = 0

AttrTable(0).VertexCount = 4 ‘四個(gè)點(diǎn)

‘頂點(diǎn)坐標(biāo)信息。

VBPlane(0) = New Direct3D.CustomVertex.PositionNormalTextured(-500, -500, 0, 0, 0, 1, 0, 0)

VBPlane(1) = New Direct3D.CustomVertex.PositionNormalTextured(500, -500, 0, 0, 0, 1, 1, 0)

VBPlane(2) = New Direct3D.CustomVertex.PositionNormalTextured(-500, 500, 0, 0, 0, 1, 0, 1)

VBPlane(3) = New Direct3D.CustomVertex.PositionNormalTextured(500, 500, 0, 0, 0, 1, 1, 1)

MyPlane = New Direct3D.Mesh(2, 4, Direct3D.MeshFlags.Managed, Direct3D.VertexFormats.Position + Direct3D.VertexFormats.Normal + Direct3D.VertexFormats.Texture1, MyDevice) ’創(chuàng)建物體

MyPlane.SetVertexBufferData(VBPlane, Direct3D.LockFlags.None) ‘輸入頂點(diǎn)坐標(biāo)數(shù)據(jù)

MyPlane.SetIndexBufferData(PlaneIB, Direct3D.LockFlags.None) ‘輸入索引數(shù)據(jù)

MyPlane.SetAttributeTable(AttrTable) ‘輸入頂點(diǎn)分組屬性表

End Sub

Public Sub Render() ‘調(diào)用它畫(huà)圖

Dim vlook As New Vector3(1, 0, 0)

Dim vPos As New Vector3(0,0,0)

Dim vUp As New Vector3(0, 0, 1)

MatView = Matrix.LookAtLH(vPos, vlook, vUp) ‘計(jì)算攝像機(jī)位置矩陣

Device.SetTransform(Direct3D.TransformType.View, MatView) ‘設(shè)置當(dāng)前攝像機(jī)位置矩陣為MatView。

Dim fAspect As Single = Me.Width / Me.Height ’窗口長(zhǎng)寬比

matProj = Matrix.PerspectiveFovLH(Math.PI / 4, fAspect, 1.0F, 10001) ‘計(jì)算透視矩陣MatProj。

MyDevice.SetTransform(Direct3D.TransformType.Projection, matProj) ‘設(shè)置當(dāng)前透視矩陣為MatProj。

MyDevice.Clear(Direct3D.ClearFlags.Target + Direct3D.ClearFlags.ZBuffer, Color.Blue, 1.0F, 0) ’先刷藍(lán)屏

MyDevice.BeginScene() ‘開(kāi)始畫(huà)

MatWorld = Matrix.Identity ’物體位于原點(diǎn),不旋轉(zhuǎn)

Device.SetTransform(Direct3D.TransformType.World, MatWorld) ’設(shè)置物體位置

Me.Mesh.DrawSubset(0) ‘畫(huà)物體

MyDevice.EndScene() ’結(jié)束

MyDevice.Present() ‘顯示在屏幕上

End Sub

Public Sub DeleteDeviceObjects() ’結(jié)束程序時(shí)放掉資源

MyPlane.Dispose()

MyDevice.Dispose()

End Sub

#End Region

Private Sub FormMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

DeleteDeviceObjects()

Windows.Forms.Cursor.Show()

End Sub

Private Sub FormMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

InitDeviceObjects()

RestoreDeviceObjects()

Windows.Forms.Cursor.Hide()

Render()

End Sub

End Class

在vb.net環(huán)境下圖像處理,用什么建立3D

首先,還是談?wù)剤D像像素時(shí)數(shù)據(jù)獲取方面吧,.net中的圖像相關(guān)類(lèi)基本上都是基于GDI+的,因此,圖像數(shù)據(jù)的獲取其實(shí)也是調(diào)用GDI+的一些函數(shù)。這個(gè)函數(shù)就是LockBits,在vb.net中彩色圖像數(shù)據(jù)的快速獲取 一文中,我們是調(diào)用了Marshal.Copy把LockBits鎖定的內(nèi)存數(shù)據(jù)拷貝到數(shù)據(jù)中,然后對(duì)數(shù)組中的值進(jìn)行處理。這樣做主要的原因是VB.NET不好直接訪問(wèn)內(nèi)存(Marshal.ReadByte之類(lèi)的函數(shù)不適合用于大型的循環(huán)中)。那么,這就造成了2個(gè)不好的事情,第一:在同一時(shí)間需要2倍于圖像數(shù)據(jù)量的內(nèi)存,第二:內(nèi)存數(shù)據(jù)拷貝到數(shù)據(jù),以及處理后再把數(shù)組的數(shù)據(jù)拷貝會(huì)內(nèi)存中都是會(huì)減低速度的。作為一種改進(jìn),我們應(yīng)該充分利用LockBits的功能。LockBits中的LockMode中有一種模式為ImageLockMode.UserInputBuffer,該模式下需要用戶(hù)先申請(qǐng)內(nèi)存,然后在把圖像數(shù)據(jù)按照相關(guān)格式填充如這個(gè)內(nèi)存中。這樣,就可以先定義個(gè)數(shù)組,然后把圖像數(shù)據(jù)填充到這個(gè)數(shù)組中,就避免了來(lái)回拷貝的耗時(shí)了,簡(jiǎn)單示例代碼如下:

Dim BmpData As New BitmapData

Stride = ((Bmp.Width * 3 + 3) And HFFFFFFFC)

Dim PixleValue(Stride * Bmp.Height) As Byte

Dim Hanlde As GCHandle = GCHandle.Alloc(PixleValue, GCHandleType.Pinned)

BmpData.Scan0 = Hanlde.AddrOfPinnedObject()

分享名稱(chēng):vb.net編的3d vbnet using
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article2/dddphic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、云服務(wù)器網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
哈密市| 灵丘县| 泰州市| 融水| 孟州市| 渑池县| 增城市| 汉阴县| 台中市| 温宿县| 巩义市| 炉霍县| 定结县| 清丰县| 乃东县| 阿拉尔市| 牟定县| 江西省| 利川市| 庆阳市| 灵台县| 台南市| 晋州市| 杭锦旗| 固阳县| 顺昌县| 繁昌县| 灌云县| 枣庄市| 济阳县| 盘山县| 苍南县| 娄烦县| 临潭县| 通江县| 潢川县| 盱眙县| 健康| 麟游县| 嘉善县| 徐闻县|