opis

Transkrypt

opis
Przykład 4 Azymut ze współrzędnych.
Projekt:
Obiekty mają zmienione następujące wartości cech:
Położenie i wielkość obiektów (w przybliżeniu) zgodnie z wyglądem w oknie programu
Cecha NAME:
okno ma nazwę P4
Przyciski mają nazwy odpowiednio – KONIEC_PRZ,; AZYMUT_PRZ, WYCZYŚĆ_PRZ
Etykiety mają nazwy odpowiednio – AUTOR_ETY, AZYMUT _ETY, a pozostałe LABEL (1-5 - bez
zmiany nazwy)
Pola tekstowe mają nazwy odpowiednio –.XK_TXT, YK_TXT, XP_TXT, YP_TXT
Pole obrazu ma nazwę RYSUNEK
Cecha TEXT - wszystkie obiekty zgodnie z wyglądem w oknie programu
Cecha TEXTALIGN
- wszystkie pola tekstowe mają ustawioną wartość na = Center
Cecha BORDERSTYLE etykieta AZYMUT_ETY, ma ustawioną wartość na = FixedSingle
Dodatkowo:
Obiekt RYSUNEK ma zmienioną cechę: IMAGE – wstawiony szkic (plik „azymut.JPG” ” stworzony poza
VB)’
SizeMode – ustawioną na „StretchImage”
Obiekt P4 ma zmienioną cechę: ICON – wstawiony plik P4.ICO.
Zmiany koloru tła i koloru napisu, oraz zmiany czcionki według własnego uznania.
Pozostałe cechy obiektów zachowują wartości początkowe.
Kolejność procedur jest obojętna.
Kod programu:
Wpisujemy kod oznaczony kolorem czarnym, pozostała część jest tworzona automatycznie przez VB.
‘ Kolor zielony (poprzedzony Apostrofem) oznacza tekst komentarza.
Public Class P4
Dim xk, xp As Single
Dim yk, yp As Single
Dim azymut As Double
Private Sub koniec_prz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles koniec_prz.Click
End
End Sub
Private Sub wyczyść_prz_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles wyczyść_prz.Click
xp_txt.Text = ""
yp_txt.Text = ""
xk_txt.Text = ""
yk_txt.Text = ""
azymut_ety.Text = ""
End Sub
Private Sub azymut_prz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles azymut_prz.Click
Dim dx, dy As Single
If xp_txt.Text = "" Or xk_txt.Text = "" Or yp_txt.Text = "" Or yk_txt.Text = "" Then
MsgBox(" Co najmniej jedna współrzędna nie została wpisana!!!", 16, "BŁĄD WSPÓŁRZĘDNYCH")
Exit Sub
End If
If xp_txt.Text = xk_txt.Text And yp_txt.Text = yk_txt.Text Then
MsgBox(" Błąd, nie ma azymutu !!!", 16, "BŁĄD WSPÓŁRZĘDNYCH")
Exit Sub
End If
xk = Val(xk_txt.Text)
xp = Val(xp_txt.Text)
yk = Val(yk_txt.Text)
yp = Val(yp_txt.Text)
dx = xk - xp
dy = yk - yp
If dx = 0 And dy > 0 Then
azymut = 100
ElseIf dx = 0 And dy < 0 Then
azymut = 300
ElseIf dx > 0 And dy = 0 Then
azymut = 0
ElseIf dx < 0 And dy = 0 Then
azymut = 200
ElseIf dx <> 0 And dy <> 0 Then
azymut = Math.Atan(dy / dx)
‘ Arcus tanges wyliczany czwartak w radianach
azymut = azymut * 200 / Math.PI
‘ przeliczenie z radianów na grady
If azymut < 0 Then azymut = -azymut
‘ przeliczenie na odpowiednią „ćwiartkę” układu współrzednych
If dx < 0 And dy > 0 Then azymut = 200 - azymut
If dx < 0 And dy < 0 Then azymut = 200 + azymut
If dx > 0 And dy < 0 Then azymut = 400 - azymut
End If
azymut_ety.Text = Format(azymut, " 0.0000 gradów ") ‘ wypisanie z formatem 4 miejsc po przecinku – czyli „cc”
End Sub
End Class
Jan Ruchel
Kraków, kwiecień 2013

Podobne dokumenty