Program Yapmak | Programcılık Hakkında Her Şey | VİSUAL BASİC 6.0 | C, C++ ve C# Yazılım Dilleri | VB.NET Yazılım Dili

Ok (Arrow) Cizim İslemi

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


İyi çalışmalar...

Gökhan ERDOĞDU
Sincan Laptop tamiratı ile alakalı içeriklerin bulunduğu web siteden bilgilere ulaşabilirsiniz. Sincan'da laptop tamiratını en iyi yapan yerleri sorgulayabilirsiniz. Cihan KOÇ
=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=