Zdrojové kódy pro vývojáře.
Přeskočit odkazy pro navigaci Top 10 přispěvatelů
UživatelČlánky
codeshare45
sochor1
stoupa1
tomas.oplt15
Článek: Ukázka aplikace - rovnováha na páce
Špatný Super
Autor:
Vytvořeno:
Popularita:

Tato aplikace je napsána v programovacím jazyku Visual Basic .NET.
Aplikace ukazuje možnosti využití jmenného prostoru System.Drawing a jeho tříd.
Obrázek je vykreslený pomocí následujících funkcí:

DrawLine
DrawPolygon

Prvek, který zobrazuje rovnováhu na páce se jmenuje pnlLever.vb.
Ovládací prvek má přetíženou metodu OnPaint ve které vykresluje obrázek.
Tento prvek je umístěný na formuláři frmExample.vb


 

Ukázka kódu v metodě OnPaint pro vykreslení obrázku:
'Drawing 
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
'points for center polygon (triangle)
'Center - highest point of the cetral triangle
Dim point1 As New PointF(m_horCentr, m_vertCentr)

'cetral triangle
'Left side
Dim point2 As New PointF(m_horCentr - (m_horSingleUnit * 5), m_vertCentr + (m_vertSingleUnit * 5))
'Right side
Dim point3 As New PointF(m_horCentr + (m_horSingleUnit * 5), m_vertCentr + (m_vertSingleUnit * 5))
Dim curvePoints As PointF() = {point1, point2, point3}
'Mode for polygon fill
Dim newFillMode As FillMode = FillMode.Alternate
e.Graphics.FillPolygon(rectBrush, curvePoints, newFillMode)
'Line is ending with arrow
penRed4.EndCap = LineCap.ArrowAnchor
'Horizontal end of left a1
Dim EndOfLefta1 As Single = m_horCentr - (m_pakaHorSingleUnit * Lever.a1)
'Horizontal end of right a1
Dim EndOfRighta2 As Single = m_horCentr + (m_pakaHorSingleUnit * Lever.a2)

Dim LeftSideVertDifference As Single
Dim RightSideVertDifference As Single
'Left side is bigger
If Lever.GetLeftSide > Lever.GetRightSide Then
LeftSideVertDifference = m_vertCentr + (m_pakaTiltSingleUnit * (Lever.GetLeftSide - Lever.GetRightSide))
RightSideVertDifference = m_vertCentr - (m_pakaTiltSingleUnit * (Lever.GetLeftSide - Lever.GetRightSide))
penBlue4 = New Pen(System.Drawing.Color.Blue, 4)
ElseIf Lever.GetLeftSide < Lever.GetRightSide Then 'prava strana je vetsi
LeftSideVertDifference = m_vertCentr - (m_pakaTiltSingleUnit * (Lever.GetRightSide - Lever.GetLeftSide))
RightSideVertDifference = m_vertCentr + (m_pakaTiltSingleUnit * (Lever.GetRightSide - Lever.GetLeftSide))
penBlue4 = New Pen(System.Drawing.Color.Blue, 4)
Else 'static equilibrium
LeftSideVertDifference = m_vertCentr
RightSideVertDifference = m_vertCentr
penBlue4 = New Pen(System.Drawing.Color.Green, 4)
End If

'Vertical end of left F1
Dim EndOfLeftF1 As Single = LeftSideVertDifference + (m_pakaVertSingleUnit * Lever.F1)
'Vertical end of right F1
Dim EndOfRightF2 As Single = RightSideVertDifference + (m_pakaVertSingleUnit * Lever.F2)

e.Graphics.DrawLine(penBlue4, EndOfLefta1, LeftSideVertDifference, EndOfRighta2, RightSideVertDifference)
'left F1
e.Graphics.DrawLine(penRed4, EndOfLefta1, LeftSideVertDifference, EndOfLefta1, EndOfLeftF1)
'right F2
e.Graphics.DrawLine(penRed4, EndOfRighta2, RightSideVertDifference, EndOfRighta2, EndOfRightF2)
End Sub

 

  Na stránku 
screen  Nový příspěvek
Název  Uživatel  Datum 
Poslední návštěva: 20:55:29, 22. září 2017 První  Předchozí  0 Záznamů  Další  Poslední  

Autor článku
Jméno
Pracovní pozice
Informace
Foto

   

Počet návštěvníků:79
 
  Kontakt