AngleMod




Option Explicit
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC&, ByVal x1&, ByVal y1&, ByVal nWidth&, ByVal nHeight&, ByVal hSrcDC&, ByVal xSrc&, ByVal ySrc&, ByVal dwRop&)
Private Const PI As Double = 3.1415926535898
Private Sub Form_Load()
Dim K%
For K = 0 To 89
CboDegrees.AddItem K
Next
CboDegrees.ListIndex = 30
Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 3
End Sub

Private Sub CboDegrees_Click()
Dim K%
Dim N#
Dim Deg%
Dim PW%, PH%
Dim NewLeft#
Dim NewTop#
Dim Inc#
PW = Pic.Width - 1
PH = Pic.Height - 1
Deg = CboDegrees.Text
Inc = Tan((PI / 180) * Deg)
Cls
If OptOrientation(0).Value Then
Line (0, 0)-(Inc * PH + PW, PH), &HFFFFFF, BF
For K = PH To 0 Step -1
BitBlt hDC, NewLeft, K, PW + 1, 1, Pic.hDC, 0, K, vbSrcCopy
NewLeft = NewLeft + Inc
Next
Refresh
Else
Line (0, 0)-(PW, Inc * PW + PH), &HFFFFFF, BF
For K = PW To 0 Step -1
BitBlt hDC, K, NewTop, 1, PH + 1, Pic.hDC, K, 0, vbSrcCopy
NewTop = NewTop + Inc
Next
End If
Refresh
End Sub

Private Sub OptOrientation_Click(Idx%)
CboDegrees.SetFocus
CboDegrees_Click
End Sub

Option Explicit
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC&, ByVal x1&, ByVal y1&, ByVal nWidth&, ByVal nHeight&, ByVal hSrcDC&, ByVal xSrc&, ByVal ySrc&, ByVal dwRop&)
Private Const PI As Double = 3.1415926535898
Private Sub Form_Load()
Dim K%
For K = 0 To 89
CboDegrees.AddItem K
Next
CboDegrees.ListIndex = 30
Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 3
End Sub

Private Sub CboDegrees_Click()
Dim K%
Dim N#
Dim Deg%
Dim PW%, PH%
Dim NewLeft#
Dim NewTop#
Dim Inc#
PW = Pic.Width - 1
PH = Pic.Height - 1
Deg = CboDegrees.Text
Inc = Tan((PI / 180) * Deg)
Cls
If OptOrientation(0).Value Then
Line (0, 0)-(Inc * PH + PW, PH), &HFFFFFF, BF
For K = PH To 0 Step -1
BitBlt hDC, NewLeft, K, PW + 1, 1, Pic.hDC, 0, K, vbSrcCopy
NewLeft = NewLeft + Inc
Next
Refresh
Else
Line (0, 0)-(PW, Inc * PW + PH), &HFFFFFF, BF
For K = PW To 0 Step -1
BitBlt hDC, K, NewTop, 1, PH + 1, Pic.hDC, K, 0, vbSrcCopy
NewTop = NewTop + Inc
Next
End If
Refresh
End Sub

Private Sub OptOrientation_Click(Idx%)
CboDegrees.SetFocus
CboDegrees_Click
End Sub











( anglemod.html )- by Paolo Puglisi - Modifica del 17/12/2023