亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? objgrid3d.cls

?? 3D網(wǎng)格設(shè)計
?? CLS
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "ObjGrid3D"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

Private xmin As Single      ' Min X and Y values.
Private Zmin As Single
Private dx As Single        ' Spacing between rows of data.
Private dz As Single
Private NumX As Integer     ' Number of X and Y entries.
Private NumZ As Integer
Private Points() As Point3D ' Data values.

' Draw a line between the points. Set the max and min values for the line.

Sub DrawAndSetLine(canvas As Object, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, hi() As Integer, lo() As Integer)
Dim tmp As Single
Dim ix As Integer
Dim iy As Integer
Dim y As Single
Dim dy As Single

    ' Deal only with integers.
    x1 = CInt(x1)
    y1 = CInt(y1)
    x2 = CInt(x2)
    y2 = CInt(y2)

    ' Make x1 < x2.
    If x2 < x1 Then
        tmp = x1
        x1 = x2
        x2 = tmp
        tmp = y1
        y1 = y2
        y2 = tmp
    End If

    ' Draw the line.
    canvas.Line (x1, y1)-(x2, y2)

    ' Deal with vertical lines separately.
    If x1 = x2 Then
        If y1 < y2 Then
            lo(x1) = y1
            hi(x1) = y2
        Else
            lo(x1) = y2
            hi(x1) = y1
        End If
        Exit Sub
    End If

    ' Deal with non-vertical lines.
    dy = (y2 - y1) / CInt(x2 - x1)
    y = y1
    For ix = x1 To x2
        iy = CInt(y)

        lo(ix) = iy
        hi(ix) = iy

        y = y + dy
    Next ix
End Sub




' Draw a line between the points using and updating the max and min arrays.


Sub DrawLine(canvas As Object, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, hi() As Integer, lo() As Integer)
Dim tmp As Single
Dim ix As Integer
Dim iy As Integer
Dim y As Single
Dim dy As Single
Dim firstx As Integer
Dim firsty As Integer
Dim skipping As Boolean
Dim above As Boolean

    ' Deal only with integers.
    x1 = CInt(x1)
    y1 = CInt(y1)
    x2 = CInt(x2)
    y2 = CInt(y2)

    ' Make x1 < x2.
    If x2 < x1 Then
        tmp = x1
        x1 = x2
        x2 = tmp
        tmp = y1
        y1 = y2
        y2 = tmp
    End If

    ' Deal with vertical lines separately.
    If x1 = x2 Then
        ' Make y1 < y2.
        If y2 < y1 Then
            tmp = y1
            y1 = y2
            y2 = tmp
        End If
        If y1 <= lo(x1) Then
            If y2 <= lo(x1) Then
                canvas.Line (x1, y1)-(x2, y2)
            Else
                canvas.Line (x1, y1)-(x2, lo(x2))
            End If
            lo(x1) = y1
        End If
        If y2 >= hi(x2) Then
            If y1 >= hi(x2) Then
                canvas.Line (x1, y1)-(x2, y2)
            Else
                canvas.Line (x1, hi(x1))-(x2, y2)
            End If
            hi(x2) = y2
        End If
        Exit Sub
    End If

    ' Deal with non-vertical lines.
    dy = (y2 - y1) / CInt(x2 - x1)
    y = y1

    ' Find the first visible point.
    skipping = True
    For ix = x1 To x2
        iy = CInt(y)
        ' See if this point is visible.
        If iy <= lo(ix) Then
            If skipping Then
                ' Start a new line below.
                skipping = False
                above = False
                firstx = ix
                firsty = lo(ix)
            End If
        ElseIf iy >= hi(ix) Then
            If skipping Then
                ' Start a new line above.
                skipping = False
                above = True
                firstx = ix
                firsty = hi(ix)
            End If
        Else
            ' This point is not visible.
            If Not skipping Then
                ' Draw the previous visible line.
                If above Then
                    ' The line is coming from
                    ' above. Connect it to hi(ix).
                    canvas.Line (firstx, firsty)-(ix, hi(ix))
                Else
                    ' The line is coming from
                    ' below. Connect it to lo(ix).
                    canvas.Line (firstx, firsty)-(ix, lo(ix))
                End If

                skipping = True
            End If
        End If

        If iy < lo(ix) Then lo(ix) = iy
        If iy > hi(ix) Then hi(ix) = iy

        y = y + dy
    Next ix

    ' Draw to the last point if necessary.
    If Not skipping Then _
        canvas.Line (firstx, firsty)-(x2, y2)
End Sub

' Create the Points array.
Sub SetBounds(x1 As Single, deltax As Single, xnum As Integer, z1 As Single, deltaz As Single, znum As Integer)
Dim i As Integer
Dim j As Integer
Dim x As Single
Dim z As Single

    xmin = x1
    Zmin = z1
    dx = deltax
    dz = deltaz
    NumX = xnum
    NumZ = znum
    ReDim Points(1 To NumX, 1 To NumZ)

    x = xmin
    For i = 1 To NumX
        z = Zmin
        For j = 1 To NumZ
            Points(i, j).coord(1) = x
            Points(i, j).coord(2) = 0
            Points(i, j).coord(3) = z
            Points(i, j).coord(4) = 1#
            z = z + dz
        Next j
        x = x + dx
    Next i
End Sub
' Save the indicated data value.
Sub SetValue(x As Single, y As Single, z As Single)
Dim i As Integer
Dim j As Integer

    i = (x - xmin) / dx + 1
    j = (z - Zmin) / dz + 1
    Points(i, j).coord(2) = y
End Sub

' Return a string indicating the object type.
Property Get ObjectType() As String
    ObjectType = "GRID"
End Property




' Apply a transformation matrix which may not
' contain 0, 0, 0, 1 in the last column to the
' object.
Public Sub ApplyFull(M() As Single)
Dim i As Integer
Dim j As Integer

    For i = 1 To NumX
        For j = 1 To NumZ
            m3ApplyFull Points(i, j).coord, M, Points(i, j).trans
        Next j
    Next i
End Sub

' Apply a transformation matrix to the object.
Public Sub Apply(M() As Single)
Dim i As Integer
Dim j As Integer

    For i = 1 To NumX
        For j = 1 To NumZ
            m3Apply Points(i, j).coord, M, Points(i, j).trans
        Next j
    Next i
End Sub






' Draw the grid without hidden surfaces using the hi-lo algorithm

Public Sub DrawWithoutHidden(canvas As Object, Optional r As Variant)
Dim xmin As Integer
Dim xmax As Integer
Dim lo() As Integer
Dim hi() As Integer
Dim ix As Integer
Dim i As Integer
Dim j As Integer
    
    ' Bound the X values.
    xmin = Points(1, 1).trans(1)
    xmax = xmin
    For i = 1 To NumX
        For j = 1 To NumZ
            ix = CInt(Points(i, j).trans(1))
            If xmin > ix Then xmin = ix
            If xmax < ix Then xmax = ix
        Next j
    Next i
    
    ' Create the max and min arrays.
    ReDim lo(xmin To xmax)
    ReDim hi(xmin To xmax)
    
    ' Draw the X and Z front edges.
    For i = 2 To NumX
        ' Draw the edge between
        ' Points(i - 1, NumZ) and Points(i, NumZ)
        ' and set max and min for its values.
        DrawAndSetLine canvas, _
            Points(i - 1, NumZ).trans(1), _
            Points(i - 1, NumZ).trans(2), _
            Points(i, NumZ).trans(1), _
            Points(i, NumZ).trans(2), _
            hi, lo
    Next i
    For i = 2 To NumZ
        ' Draw the edge between
        ' Points(NumX, i - 1) and Points(NumX, i)
        ' and set max and min for its values.
        DrawAndSetLine canvas, _
            Points(NumX, i - 1).trans(1), _
            Points(NumX, i - 1).trans(2), _
            Points(NumX, i).trans(1), _
            Points(NumX, i).trans(2), _
            hi, lo
    Next i
    
    
    For i = NumX - 1 To 1 Step -1
        For j = NumZ - 1 To 1 Step -1
            
            ' This only happens with perspective projection.
            
            If Points(i + 1, j).trans(1) >= Points(i, j).trans(1) Then
                DrawLine canvas, _
                    Points(i, j).trans(1), _
                    Points(i, j).trans(2), _
                    Points(i, j + 1).trans(1), _
                    Points(i, j + 1).trans(2), _
                    hi, lo
                DrawLine canvas, _
                    Points(i, j).trans(1), _
                    Points(i, j).trans(2), _
                    Points(i + 1, j).trans(1), _
                    Points(i + 1, j).trans(2), _
                    hi, lo
            Else
                DrawLine canvas, _
                    Points(i, j).trans(1), _
                    Points(i, j).trans(2), _
                    Points(i + 1, j).trans(1), _
                    Points(i + 1, j).trans(2), _
                    hi, lo
                DrawLine canvas, _
                    Points(i, j).trans(1), _
                    Points(i, j).trans(2), _
                    Points(i, j + 1).trans(1), _
                    Points(i, j + 1).trans(2), _
                    hi, lo
            End If
        Next j
    Next i
End Sub



' Draw the transformed points on the PictureBox.

Public Sub Draw(canvas As Object, Optional r As Variant)
    DrawWithoutHidden canvas, r
End Sub









?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内成人精品2018免费看| 制服丝袜成人动漫| 欧美日韩中文字幕一区| 久久综合99re88久久爱| 亚洲精品老司机| 国产一区二区三区久久久| 色久综合一二码| 欧美va天堂va视频va在线| 亚洲国产视频a| 91在线一区二区三区| 精品国产伦一区二区三区免费| 亚洲欧美综合在线精品| 韩国v欧美v日本v亚洲v| 欧美日韩亚洲国产综合| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 九九九精品视频| 91精品国产一区二区三区香蕉| 一区二区三区日韩欧美| 成人小视频免费观看| 精品对白一区国产伦| 日本欧美韩国一区三区| 欧美三级视频在线| 一区二区三区不卡视频在线观看| 成人免费高清视频| 久久久99精品免费观看不卡| 老司机免费视频一区二区| 欧美精品黑人性xxxx| 亚洲成人在线网站| 精品视频一区三区九区| 夜夜爽夜夜爽精品视频| 色视频欧美一区二区三区| 亚洲手机成人高清视频| 波多野结衣一区二区三区 | 欧美日韩另类国产亚洲欧美一级| 国产区在线观看成人精品| 麻豆精品精品国产自在97香蕉| 欧美精品视频www在线观看 | 午夜私人影院久久久久| 欧美日韩一区二区三区视频| 夜夜爽夜夜爽精品视频| 欧美日韩一区精品| 五月婷婷久久丁香| 欧美一区二区在线看| 日本成人在线视频网站| 日韩欧美成人午夜| 国产一区 二区 三区一级| 久久精品无码一区二区三区| 国产98色在线|日韩| 国产日韩欧美在线一区| 99国产一区二区三精品乱码| 亚洲免费av网站| 欧美乱熟臀69xxxxxx| 免费成人av在线播放| 日本一区二区三区在线观看| 97精品视频在线观看自产线路二| 亚洲免费成人av| 欧美一级生活片| 国产一区999| 一区二区免费看| 日韩午夜小视频| 国产69精品久久777的优势| 中文字幕日本乱码精品影院| 欧美三级电影在线看| 久久精品国产精品亚洲红杏| 中文字幕二三区不卡| 欧美日韩亚洲综合一区二区三区| 精品亚洲porn| 国产精品国产a| 日韩亚洲欧美在线观看| 成人激情图片网| 亚洲成av人片观看| 国产精品网站一区| 欧美日韩精品免费| 国产福利精品一区| 婷婷国产在线综合| 欧美国产日产图区| 欧美一区二区高清| 91麻豆精品一区二区三区| 日本欧美在线看| 曰韩精品一区二区| 国产欧美视频一区二区| 欧美日本不卡视频| 成人免费看的视频| 奇米精品一区二区三区在线观看一| 国产女人18水真多18精品一级做| 欧美电影在线免费观看| 成人av网站在线| 韩国三级在线一区| 亚洲成年人网站在线观看| 国产精品午夜电影| 精品免费国产二区三区 | 精品国产百合女同互慰| 日本高清不卡在线观看| 国产一区不卡视频| 美国十次了思思久久精品导航| 亚洲天堂精品在线观看| 国产三级一区二区| 日韩视频在线一区二区| 欧美午夜视频网站| 99久久精品久久久久久清纯| 国产一区二区三区视频在线播放| 亚洲福利电影网| 伊人婷婷欧美激情| 中文字幕在线观看不卡| 国产日韩欧美一区二区三区乱码| 日韩免费视频一区二区| 制服丝袜激情欧洲亚洲| 欧美日韩视频在线一区二区| 日本福利一区二区| 91蜜桃视频在线| 99精品久久免费看蜜臀剧情介绍| 丁香一区二区三区| 国产成人av自拍| 国产电影精品久久禁18| 韩国精品一区二区| 国模冰冰炮一区二区| 国产资源在线一区| 国产精品系列在线观看| 国产精品一品二品| 国产成人福利片| 99re免费视频精品全部| 91碰在线视频| 91在线国产福利| 在线免费亚洲电影| 欧美美女一区二区| 日韩美一区二区三区| 日韩欧美高清一区| 久久久精品人体av艺术| 中文字幕乱码日本亚洲一区二区 | 亚洲一区二区三区不卡国产欧美| 亚洲欧美色综合| 亚洲精品乱码久久久久久久久| 亚洲激情在线激情| 日本aⅴ亚洲精品中文乱码| 免费一级欧美片在线观看| 国内精品自线一区二区三区视频| 国产一区二区三区最好精华液| 国产成人精品免费网站| 91丨九色丨蝌蚪丨老版| 欧美日韩午夜在线视频| 欧美精品一区二区三区在线播放| 久久婷婷综合激情| 国产精品二区一区二区aⅴ污介绍| 亚洲人成小说网站色在线| 午夜精品久久久久久久99水蜜桃| 美腿丝袜亚洲一区| 成人av电影免费观看| 欧美色图12p| 久久综合狠狠综合| 亚洲精品一卡二卡| 美国毛片一区二区三区| av一本久道久久综合久久鬼色| 在线免费av一区| 精品国产亚洲在线| 亚洲天堂福利av| 蜜桃av噜噜一区| 91日韩精品一区| 精品国产成人系列| 亚洲国产美国国产综合一区二区| 精品一区免费av| 91美女视频网站| 久久久久久久久久久久久夜| 亚洲永久精品大片| 国产精品一区二区久久精品爱涩| 欧美伊人精品成人久久综合97 | 日韩欧美一区在线| 一区在线中文字幕| 狠狠色丁香九九婷婷综合五月| 一本到三区不卡视频| 久久人人97超碰com| 亚洲成av人片| 99re热这里只有精品免费视频| 91精品国产综合久久久蜜臀粉嫩 | 337p粉嫩大胆噜噜噜噜噜91av | 黄色日韩三级电影| 欧美色精品在线视频| 国产精品国产三级国产| 精品写真视频在线观看| 欧美日韩国产成人在线免费| 中文字幕一区av| 国产91精品在线观看| 日韩视频一区二区| 日韩va欧美va亚洲va久久| 色先锋资源久久综合| 国产精品久久久久久久久动漫 | 91日韩在线专区| 中文字幕av资源一区| 国产在线精品一区二区三区不卡| 欧美日韩另类国产亚洲欧美一级| 亚洲乱码中文字幕| 99re成人精品视频| 国产精品久久久久一区二区三区共 | 久久久久久久久久久久久久久99| 日韩成人一区二区| 欧美肥妇毛茸茸| 五月婷婷色综合| 91精品国产色综合久久不卡电影| 亚洲国产三级在线| 欧美少妇bbb| 亚洲bdsm女犯bdsm网站|