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.
[size=12]Kullanımı[/size][size=9]
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.
[size=9]
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
İyi çalışmalar...
[/size][/size]