网站首页 > 文章中心 > 其它

vb.net开发三维图

作者:小编 更新时间:2023-10-05 18:10:48 浏览量:124人看过

VB.net可以开发小型3D图形显示软件吗?

我不得不承认在VB上写DirectX的教程相当难找!如果LZ想深入研究三维图形问题,C++一定要学,就算不能用C++编程,起码要能把C++程序翻译成VB程序.

我自己学会DX编程花了两三个月(很浅).编这样一个程序难度是有点大的.

这是我的一个老DX程序的不完全的代码(显示一个黑乎乎的平面),不一定能编译,可以参考一下.

Imports Microsoft.DirectX '一定要~

Public Class FormMain

'Matrices

Dim matWorld, matView, matProj As Matrix '世界位置矩阵,摄像机位置矩阵和透视矩阵,数学要学好啊.

vb.net开发三维图-图1

'mesh

#Region "DX Core"

Public Sub InitDeviceObjects()

.Windowed = True '不全屏.

.EnableAutoDepthStencil = True '让DX自动管理深度缓冲

End With

End Sub

vb.net开发三维图-图2

Public Sub RestoreDeviceObjects()

AttrTable(0).AttributeId = 0

AttrTable(0).FaceStart = 0

AttrTable(0).VertexStart = 0

'顶点坐标信息.

MyPlane.SetAttributeTable(AttrTable) '输入顶点分组属性表

Public Sub Render() '调用它画图

MatView = Matrix.LookAtLH(vPos, vlook, vUp) '计算摄像机位置矩阵

Dim fAspect As Single = Me.Width / Me.Height '窗口长宽比

MyDevice.BeginScene() '开始画

MatWorld = Matrix.Identity '物体位于原点,不旋转

Me.Mesh.DrawSubset(0) '画物体

MyDevice.EndScene() '结束

MyDevice.Present() '显示在屏幕上

Public Sub DeleteDeviceObjects() '结束程序时放掉资源

MyPlane.Dispose()

MyDevice.Dispose()

#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()

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

InitDeviceObjects()

RestoreDeviceObjects()

Windows.Forms.Cursor.Hide()

Render()

End Class

在vb.net环境下图像处理,用什么建立3D

Dim BmpData As New BitmapData

Dim PixleValue(Stride * Bmp.Height) As Byte

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

BmpData.Scan0 = Hanlde.AddrOfPinnedObject()

怎么利用VB.NET实现三维绘图

数学上不是有斜二测画法,算好坐标即可画出

或者用AnyCAD的.Net图形控件

也可以调用matlab 实现

以上就是土嘎嘎小编为大家整理的vb.net开发三维图相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章