Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Kliknite na kartu " Vývojár " a potom kliknite na tlačidlo " Visual Basic " otvorte Editor jazyka Visual Basic .
2
Kliknite na " Vložiť " a potom kliknite na " modul " pre otvorenie prázdne okno modulu
3
skopírujte a vložte nasledujúci kód do okna modulu : . " Nájdite bod , kde dva segmenty intersect.Public Sub FindLineIntersection ( _ByVal x11 ako Single , byVal Y11 ako Single , _ByVal x12 As Single , byval y12 ako Single , _ByVal x21 As Single , byval Y21 ako Single , _ByVal x22 As Single , byval Y22 ako samostatné , _ByRef inter_x ako Single , ByRef inter_y ako Single , _ByRef inter_x1 ako Single , ByRef inter_y1 As Single , _ByRef inter_x2 ako samostatné , ByRef inter_y2 ako Single ) Dim DX1 ako SingleDim dy1 ako SingleDim DX2 ako SingleDim dy2 ako SingleDim t1 ako SingleDim t2 ako SingleDim menovateľa ako Single
" Get segmentov parameters.dx1 = x12 - x11dy1 = y12 - y11dx2 = x22 - x21dy2 = Y22 - Y21
" Riešenie pre t1 a t2.On Error Resume Nextdenominator = ( dy1 * DX2 - DX1 * dy2 ) t1 = ( ( x11 - x21 ) * dy2 + ( Y21 - Y11 ) * DX2 ) /_denominatorIf err.number < > 0 Then ' linky sú parallel.inter_x = 1E +38 : inter_y = 1E +38 inter_x1 = 1E +38 : inter_y1 = 1E +38 inter_x2 = 1E +38 : inter_y2 = 1E +38 Exit SubEnd iFone Error GoTo 0t2 = ( ( x21 - x11 ) * dy1 + ( Y11 - Y21 ) * DX1 ) /_ - menovateľ
" Hľadať bod intersection.inter_x = x11 + DX1 * t1inter_y = Y11 + dy1 * t1
" nájdite najbližšiu hodnotu bodov na segments.If t1 < 0 Thent1 = 0ElseIf t1 > 1 Thent1 = 1End nNejsou ak t2 < 0 Thent2 = 0ElseIf t2 > 1 Thent2 = 1End Ifinter_x1 = x11 + DX1 * t1inter_y1 = Y11 + dy1 * t1inter_x2 = x21 + DX2 * t2inter_y2 = Y21 + dy2 * t2End Sub
4
Press " F5 " spustiť rutinu .
Copyright © počítačové znalosti Všetky práva vyhradené