VB中可以用图来表示三维空间的数据吗?如x = 3, y = 7 ,Z = 4

解决方案 »

  1.   

    用VB结合OpenGL或 DirectX来做更方便。
      

  2.   

    唉!这个问题嘛……说起来话长。公式:x=x*a1+y*b1+z*c1+d1
    y=x*a2+y*b2+z*c2+d2
    z=x*a3+y*b3+z*c3+d3有矩阵:
    a1,b1,c1,d1
    a2,b2,c2,d2
    a3,b3,c3,d3
    a4,b4,c4,d4然后你就查各种变换矩阵吧,你可以去维基百科查“球坐标系”。接着你就想像:3D像素在一个“镜头”的平面上投影,只要你把3D像素在这个平面的投影坐标变换出来,就行了。一些图形学的书上就有矩阵和投影计算方法。你看看下面这个帖子,我那几个霓虹灯都是VBS写的3D效果。
    http://topic.csdn.net/u/20091224/10/077adae0-1e48-43d5-91b8-b995d872a082.html
      

  3.   

    恰巧有一本关于VB绘制图形的书,你拿去看看吧:
    http://download.csdn.net/source/1817028
      

  4.   

    平行投影比较简单
    Option Explicit
    Private Const PI        As Double = 3.14159265358979
    Private Const X_RADIUS  As Double = 225 / 180 * PIPrivate Sub Form_Load()
        Const X = 5
        Const Y = 3
        Const Z = 9
        Dim W As Double
        Dim H As Double
        
        Me.AutoRedraw = True
        Me.BackColor = vbWhite
        If Me.ScaleWidth > Me.ScaleHeight Then
            H = 10
            W = 10 * Me.ScaleWidth / Me.ScaleHeight
        Else
            H = 10 * Me.ScaleHeight / Me.ScaleWidth
            W = 10
        End If
        Me.Scale (-W, H)-(W, -H)
        
        Me.Cls
        
        Me.ForeColor = &H808080
        Me.DrawStyle = vbDot
        Me.Line (0, 0)-(-10, -10)   'X轴'
        Me.Line (0, 0)-(W, 0)       'Y轴'
        Me.Line (0, 0)-(0, H)       'Z轴'
        
        Me.ForeColor = vbRed
        Me.DrawStyle = vbSolid
        Me.CurrentX = 0
        Me.CurrentY = 0
        Me.Line Step(0, 0)-Step(X * Sin(X_RADIUS), X * Cos(X_RADIUS))
        Me.Line Step(0, 0)-Step(Y, 0)
        Me.Line Step(0, 0)-Step(0, Z)
    End Sub