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