Ok (Arrow) Çizim İşlemi.--------------------------------------------------------------------------------
Visual Basic de belirtilen x1 ve y1 koordinatlarından x2 ve y2 koordinatlarına ok çizen fonksiyon.
Ok Çizme İşlemi--------------------------------------------------------------------------------
Bu işlemi daha basit bir yöntemle yapan api veya fonksiyon var mı?
Internette bulamadım. Bu sebeple, bu işlemin nasıl yapıldığına dair bir
fonksiyon yazdım. Bunu da sizlerle paylaşmak istedim. Fonksiyonda Line
komutunu kullandım fakat siz, aynı işlemi yapan apileri
kullanabilirsiniz.
Bu fonksiyon, yazdığım bir çizim programının bir parçasıdır. Uygulamayı tamamladığımda sizlerle paylaşacağım.
Kullanımı
--------------------------------------------------------------------------------
Basit olarak yeni bir proje açın ve formunuzun ScaleMode özelliğini
pixel olarak, AutoRedraw özelliğini ise True yapın ayarlayın. Aşağıdaki
fonksiyonu formunuza ekleyin.
Örn: Uygulama içinde;
DrawArrow 0, 0, 100, 150
şeklinde değerleri belirleyerek kullanabilirsiniz.
Private Sub DrawArrow(ByVal nX1 As Long, ByVal nY1 As Long, ByVal nX2
As Long, ByVal nY2 As Long, Optional ByVal nColor As OLE_COLOR)
Dim nRadius As Long, i As Long, n1 As Long, n2 As Long
Dim nAngle As Long, dAngle As Double, dTan As Double
Dim nLen As Long, nW1 As Long, nH1 As Long
nRadius = 10
nW1 = nX1 - nX2
nH1 = nY1 - nY2
nLen = Sqr(nW1 ^ 2 + nH1 ^ 2)
If nLen > 1.5 * nRadius Then
dTan = (nH1 + 0.00001) / (nW1 + 0.00001)
nAngle = Atn(dTan) * 180 / PI
If nX1 >= nX2 Then nAngle = nAngle + 180
For i = -20 To 20
dAngle = (nAngle + i + 180) * PI / 180
n1 = Cos(dAngle) * nRadius + nX2
n2 = Sin(dAngle) * nRadius + nY2
Me.Line (nX2, nY2)-(n1, n2), nColor
Next i
End If
Me.Line (nX1, nY1)-(nX2, nY2), nColor
End Sub