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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pebi.txt

?? 這是德羅內三角剖分
?? TXT
字號:
Option Explicit

'Points (Vertices)
Public Type dVertex
    x As Long
    y As Long
    z As Long


End Type



'Created Triangles, vv# are the vertex pointers
Public Type dTriangle
    vv0 As Long
    vv1 As Long
    vv2 As Long
End Type




'Set these as applicable
Public Const MaxVertices = 500
Public Const MaxTriangles = 1000

'Our points
Public Vertex(MaxVertices) As dVertex

'Our Created Triangles
Public Triangle(MaxTriangles) As dTriangle


Private Function InCircle(xp As Long, yp As Long, x1 As Long, y1 As Long, x2 As Long, y2 As Long, x3 As Long, y3 As Long, ByRef xc, ByRef yc, ByRef r) As Boolean
    'Return TRUE if the point (xp,yp) lies inside the circumcircle
    'made up by points (x1,y1) (x2,y2) (x3,y3)
    'The circumcircle centre is returned in (xc,yc) and the radius r
    'NOTE: A point on the edge is inside the circumcircle
         
    Dim eps As Double
    Dim m1 As Double
    Dim m2 As Double
    Dim mx1 As Double
    Dim mx2 As Double
    Dim my1 As Double
    Dim my2 As Double
    Dim dx As Double
    Dim dy As Double
    Dim rsqr As Double
    Dim drsqr As Double
    
    eps = 0.000001
    
    InCircle = False
          
    If Abs(y1 - y2) < eps And Abs(y2 - y3) < eps Then
        MsgBox "INCIRCUM - F - Points are coincident !!"
        Exit Function
    End If
    
    If Abs(y2 - y1) < eps Then
        m2 = -(x3 - x2) / (y3 - y2)
        mx2 = (x2 + x3) / 2
        my2 = (y2 + y3) / 2
        xc = (x2 + x1) / 2
        yc = m2 * (xc - mx2) + my2
    ElseIf Abs(y3 - y2) < eps Then
        m1 = -(x2 - x1) / (y2 - y1)
        mx1 = (x1 + x2) / 2
        my1 = (y1 + y2) / 2
        xc = (x3 + x2) / 2
        yc = m1 * (xc - mx1) + my1
    Else
        m1 = -(x2 - x1) / (y2 - y1)
        m2 = -(x3 - x2) / (y3 - y2)
        mx1 = (x1 + x2) / 2
        mx2 = (x2 + x3) / 2
        my1 = (y1 + y2) / 2
        my2 = (y2 + y3) / 2
        xc = (m1 * mx1 - m2 * mx2 + my2 - my1) / (m1 - m2)
        yc = m1 * (xc - mx1) + my1
    End If
          
    dx = x2 - xc
    dy = y2 - yc
    rsqr = dx * dx + dy * dy
    r = Sqr(rsqr)
    dx = xp - xc
    dy = yp - yc
    drsqr = dx * dx + dy * dy
    
    If drsqr <= rsqr Then InCircle = True
        
End Function
Private Function WhichSide(xp As Long, yp As Long, x1 As Long, y1 As Long, x2 As Long, y2 As Long) As Integer
    'Determines which side of a line the point (xp,yp) lies.
    'The line goes from (x1,y1) to (x2,y2)
    'Returns -1 for a point to the left
    '         0 for a point on the line
    '        +1 for a point to the right
     
    Dim equation As Double
    
    equation = ((yp - y1) * (x2 - x1)) - ((y2 - y1) * (xp - x1))
    
    If equation > 0 Then
        WhichSide = -1
    ElseIf equation = 0 Then
        WhichSide = 0
    Else
        WhichSide = 1
    End If

End Function

Public Function Triangulate(nvert As Integer) As Integer
    'Takes as input NVERT vertices in arrays Vertex()
    'Returned is a list of NTRI triangular faces in the array
    'Triangle(). These triangles are arranged in clockwise order.
    
    Dim Complete(MaxTriangles) As Boolean
    Dim Edges(2, MaxTriangles * 3) As Long
    Dim Nedge As Long
    
    'For Super Triangle
    Dim xmin As Long
    Dim xmax As Long
    Dim ymin As Long
    Dim ymax As Long
    Dim xmid As Long
    Dim ymid As Long
    Dim dx As Double
    Dim dy As Double
    Dim dmax As Double
    
    'General Variables
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim ntri As Integer
    Dim xc As Double
    Dim yc As Double
    Dim r As Double
    Dim inc As Boolean
    
    'Find the maximum and minimum vertex bounds.
    'This is to allow calculation of the bounding triangle
    xmin = Vertex(1).x
    ymin = Vertex(1).y
    xmax = xmin
    ymax = ymin
    For i = 2 To nvert
        If Vertex(i).x < xmin Then xmin = Vertex(i).x
        If Vertex(i).x > xmax Then xmax = Vertex(i).x
        If Vertex(i).y < ymin Then ymin = Vertex(i).y
        If Vertex(i).y > ymax Then ymax = Vertex(i).y
    Next i
    dx = xmax - xmin
    dy = ymax - ymin
    If dx > dy Then
        dmax = dx
    Else
        dmax = dy
    End If
    xmid = (xmax + xmin) / 2
    ymid = (ymax + ymin) / 2
    
    'Set up the supertriangle
    'This is a triangle which encompasses all the sample points.
    'The supertriangle coordinates are added to the end of the
    'vertex list. The supertriangle is the first triangle in
    'the triangle list.
    
    Vertex(nvert + 1).x = xmid - 2 * dmax
    Vertex(nvert + 1).y = ymid - dmax
    Vertex(nvert + 2).x = xmid
    Vertex(nvert + 2).y = ymid + 2 * dmax
    Vertex(nvert + 3).x = xmid + 2 * dmax
    Vertex(nvert + 3).y = ymid - dmax
    Triangle(1).vv0 = nvert + 1
    Triangle(1).vv1 = nvert + 2
    Triangle(1).vv2 = nvert + 3    Complete(1) = False
    ntri = 1
    
    'Include each point one at a time into the existing mesh
    For i = 1 To nvert
        Nedge = 0
        'Set up the edge buffer.
        'If the point (Vertex(i).x,Vertex(i).y) lies inside the circumcircle then the
        'three edges of that triangle are added to the edge buffer.
        j = 0
        Do
            j = j + 1
            If Complete(j) <> True Then
                inc = InCircle(Vertex(i).x, Vertex(i).y, Vertex(Triangle(j).vv0).x, Vertex(Triangle(j).vv0).y, Vertex(Triangle(j).vv1).x, Vertex(Triangle(j).vv1).y, Vertex(Triangle(j).vv2).x, Vertex(Triangle(j).vv2).y, xc, yc, r)
                'Include this if points are sorted by X
                'If (xc + r) < Vertex(i).x Then
                    'complete(j) = True
                'Else
                If inc Then
                    Edges(1, Nedge + 1) = Triangle(j).vv0
                    Edges(2, Nedge + 1) = Triangle(j).vv1
                    Edges(1, Nedge + 2) = Triangle(j).vv1
                    Edges(2, Nedge + 2) = Triangle(j).vv2
                    Edges(1, Nedge + 3) = Triangle(j).vv2
                    Edges(2, Nedge + 3) = Triangle(j).vv0
                    Nedge = Nedge + 3
                    Triangle(j).vv0 = Triangle(ntri).vv0
                    Triangle(j).vv1 = Triangle(ntri).vv1
                    Triangle(j).vv2 = Triangle(ntri).vv2
                    Complete(j) = Complete(ntri)
                    j = j - 1
                    ntri = ntri - 1
                End If
                'End If
            End If
        Loop While j < ntri
    
        'Tag multiple edges
        'Note: if all triangles are specified anticlockwise then all
        'interior edges are opposite pointing in direction.
        For j = 1 To Nedge - 1
            If Not Edges(1, j) = 0 And Not Edges(2, j) = 0 Then
                For k = j + 1 To Nedge
                    If Not Edges(1, k) = 0 And Not Edges(2, k) = 0 Then
                        If Edges(1, j) = Edges(2, k) Then
                            If Edges(2, j) = Edges(1, k) Then
                                Edges(1, j) = 0
                                Edges(2, j) = 0
                                Edges(1, k) = 0
                                Edges(2, k) = 0
                             End If
                         End If
                   End If
                 Next k
            End If
        Next j
        
        'Form new triangles for the current point
        'Skipping over any tagged edges.
        'All edges are arranged in clockwise order.
        For j = 1 To Nedge
                If Not Edges(1, j) = 0 And Not Edges(2, j) = 0 Then
                    ntri = ntri + 1
                    Triangle(ntri).vv0 = Edges(1, j)
                    Triangle(ntri).vv1 = Edges(2, j)
                    Triangle(ntri).vv2 = i
                    Complete(ntri) = False
                End If
        Next j
    Next i
    
    'Remove triangles with supertriangle vertices
    'These are triangles which have a vertex number greater than NVERT
    i = 0
    Do
        i = i + 1
        If Triangle(i).vv0 > nvert Or Triangle(i).vv1 > nvert Or Triangle(i).vv2 > nvert Then
            Triangle(i).vv0 = Triangle(ntri).vv0
            Triangle(i).vv1 = Triangle(ntri).vv1
            Triangle(i).vv2 = Triangle(ntri).vv2
            i = i - 1
            ntri = ntri - 1
        End If
    Loop While i < ntri
    
    Triangulate = ntri
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产喷白浆一区二区三区| 精品国产乱码久久久久久蜜臀| 久久精品国产久精国产爱| 亚洲va在线va天堂| 一级做a爱片久久| 一区二区三区视频在线看| 亚洲自拍偷拍网站| 亚洲国产成人91porn| 亚洲一区二区三区美女| 亚洲午夜精品在线| 视频一区二区三区中文字幕| 五月天亚洲精品| 精品一区二区在线播放| 国精产品一区一区三区mba视频 | 91免费看片在线观看| 99国产精品99久久久久久| 在线观看av不卡| 5566中文字幕一区二区电影| 日韩精品一区二区三区在线观看| 日韩精品专区在线影院重磅| 国产三级欧美三级日产三级99| 国产三级欧美三级日产三级99| 亚洲欧洲一区二区三区| 亚洲成人精品一区| 国产精品中文有码| 99国产欧美久久久精品| 91麻豆精品国产91久久久久久| 精品国产伦理网| 亚洲精品久久7777| 经典三级视频一区| 色美美综合视频| 欧美不卡123| 亚洲美女在线一区| 免费在线观看一区| av在线免费不卡| 一片黄亚洲嫩模| 国产精品自拍网站| 欧美一区二区免费视频| 欧美三级日韩在线| 久久久久一区二区三区四区| 日韩一级免费观看| 国产在线精品一区在线观看麻豆| 日韩精品中文字幕一区二区三区 | 欧美少妇一区二区| 亚洲一区在线播放| 欧美老年两性高潮| 麻豆精品精品国产自在97香蕉 | 一道本成人在线| 一区二区理论电影在线观看| 欧美精品第1页| 免费观看日韩电影| 中文在线资源观看网站视频免费不卡| 成a人片国产精品| 亚洲尤物视频在线| 欧美成人精品1314www| 国产成人免费在线视频| 亚洲人123区| 日韩一级大片在线| 成人午夜av在线| 亚洲一区二区三区自拍| 欧美一区二区三区免费在线看 | 久久众筹精品私拍模特| 丁香婷婷综合五月| 亚洲一区二区三区四区五区中文| 777奇米成人网| 成人国产亚洲欧美成人综合网| 一区二区成人在线视频| 精品国产一区二区三区不卡| av成人免费在线| 蜜臀精品一区二区三区在线观看| 国产精品久久久久久亚洲毛片 | 在线观看中文字幕不卡| 麻豆精品久久精品色综合| 亚洲欧美视频在线观看视频| 日韩视频一区二区三区在线播放| 成人免费毛片嘿嘿连载视频| 亚洲午夜av在线| 国产精品三级在线观看| 欧美久久婷婷综合色| 成人在线综合网| 日本美女视频一区二区| 综合欧美亚洲日本| 久久久综合网站| 欧美乱熟臀69xxxxxx| 99在线精品一区二区三区| 精品一区二区日韩| 日韩在线播放一区二区| 亚洲男人天堂av| 国产精品国产成人国产三级 | 欧美日韩国产高清一区二区三区 | 欧美一区二区女人| 色综合中文字幕国产 | 久久这里只有精品视频网| 日本乱人伦aⅴ精品| 国产高清成人在线| 精品亚洲成a人在线观看| 亚洲午夜电影在线| 伊人夜夜躁av伊人久久| 国产精品传媒视频| 国产欧美精品一区二区色综合 | 国产精品久久精品日日| 久久在线免费观看| 精品久久人人做人人爱| 日韩欧美国产精品一区| 欧美一区二区三区啪啪| 欧美日本国产一区| 欧美日韩成人一区二区| 欧美日韩中文精品| 欧美性三三影院| 欧美中文字幕不卡| 色综合久久久久综合99| 日本韩国欧美国产| 色诱亚洲精品久久久久久| 色婷婷综合中文久久一本| aaa亚洲精品| 日本丶国产丶欧美色综合| 在线观看亚洲成人| 欧美日韩黄色一区二区| 91.麻豆视频| 日韩欧美精品在线视频| 精品日韩一区二区三区免费视频| 精品剧情在线观看| 国产日韩欧美精品在线| 亚洲欧美乱综合| 亚洲国产日韩精品| 男人的天堂久久精品| 老司机午夜精品| 懂色av一区二区在线播放| eeuss鲁一区二区三区| 欧美在线制服丝袜| 欧美久久一区二区| 久久久无码精品亚洲日韩按摩| 国产午夜精品久久久久久免费视| 国产精品国产自产拍高清av王其| 亚洲日本电影在线| 亚洲午夜精品在线| 精品一区二区三区av| 97超碰欧美中文字幕| 欧美日韩国产电影| 国产亚洲一区二区三区在线观看 | 国产亲近乱来精品视频| 亚洲欧美自拍偷拍| 日本欧美肥老太交大片| 国产91丝袜在线播放九色| 欧美伊人久久大香线蕉综合69 | 欧美日韩在线播放三区| 日韩欧美成人激情| 亚洲欧美怡红院| 日韩黄色小视频| 东方欧美亚洲色图在线| 欧美视频中文一区二区三区在线观看| 欧美成人精品福利| 亚洲女人的天堂| 国产精品一区二区男女羞羞无遮挡| 99r国产精品| 久久影院电视剧免费观看| 亚洲欧美乱综合| 国内精品国产成人国产三级粉色| 91成人在线免费观看| 久久嫩草精品久久久久| 亚洲成人一区二区| jiyouzz国产精品久久| 欧美成va人片在线观看| 亚洲色图一区二区三区| 蜜桃精品在线观看| 色婷婷av久久久久久久| 久久久亚洲高清| 日本不卡一区二区三区高清视频| 波多野结衣视频一区| 精品国产亚洲一区二区三区在线观看 | 欧美日韩国产综合一区二区| 国产免费久久精品| 蜜臀久久久久久久| 欧美影视一区二区三区| 欧美激情在线观看视频免费| 美女尤物国产一区| 精品视频在线看| 亚洲欧洲精品天堂一级| 国产一区二区h| 日韩欧美123| 五月天激情综合| 色婷婷一区二区| 亚洲图片你懂的| 99亚偷拍自图区亚洲| 国产视频一区二区在线观看| 老鸭窝一区二区久久精品| 欧美高清视频一二三区| 亚瑟在线精品视频| 在线精品视频免费播放| 亚洲激情图片qvod| 91亚洲精品久久久蜜桃网站| 国产性做久久久久久| 激情综合一区二区三区| 日韩精品一区二区在线| 久久精品72免费观看| 67194成人在线观看| 日韩影院免费视频| 337p亚洲精品色噜噜狠狠| 天天综合网 天天综合色| 欧美日韩视频在线观看一区二区三区|