kąt ze współrzędnych 5


Przykład 5 Kąt, długości i współczynniki kierunkowe.

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:

Dodane przyciski mają nazwy odpowiednio - DŁUGOŚĆ_PRZ i WSPÓŁCZYNNIKI_PRZ

Dodane przyciski (i KĄT_PRZ) maja cechę ENABLED wyłaczona (=FALSE)

Etykiety mają nazwy odpowiednio -KĄTF_ETY, DŁUGOŚĆL_ETY, DŁUGOŚĆP_ETY, AL._ETY, AP_ETY, BL_ETY I BP_ETY, a pozostałe LABEL ( bez zmiany nazwy)

Przyciski opcji (RADIOBUTTON) mają nazwy METR_OPC,CENTYMETR_OPC i MILIMETR_OPC i są umieszczone na obiekcie GRUPA_OPCJI (kontrolka GroupBox z kontenera CONTAINERS)

Dodatkowo:

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.

Kod programu:

Wpisujemy kod oznaczony kolorem czarnym, pozostała część jest tworzona automatycznie przez VB.

„ Kolor zielony (poprzedzony Apostrofem) oznacza tekst komentarza.

Zamieszczono nowe i zmienione procedury

Public Class p5

Dim xl, xc, xp, yl, yc, yp As Single

Dim azymut_l, azymut_p As Double

Dim dxl, dyl, dxp, dyp As Single

Dim długość_l, długość_p As Double

Dim mnożnik As Integer

Dim t As String

Private Sub wyczyść_prz_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles wyczyść_prz.Click

. . . . . . .

kąt_ety.Text = "" : kątF_ety.Text = ""

długośćL_ety.Text = "" : długośćP_ety.Text = ""

AL_ety.Text = "" : BL_ety.Text = ""

AP_ety.Text = "" : BP_ety.Text = ""

kąt_prz.Enabled = False

długość_prz.Enabled = False

współczynniki_prz.Enabled = False

End Sub

Private Sub azymut_prz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles azymut_prz.Click

„ usuwamy deklarację przyrostów DIM dxl,……

If kontrola_danych() Then Exit Sub

xl = Val(xl_txt.Text)

. . . . . .

kąt_ety.Text = "" : kątF_ety.Text = ""

kąt_prz.Enabled = True : długość_prz.Enabled = True

End Sub

Private Sub kąt_prz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles kąt_prz.Click

Dim kąt, kątF, f1, f2 As Double

kąt = azymut_p - azymut_l

If kąt < 0 Then kąt = kąt + 400

kąt_ety.Text = Format(kąt, " 0.0000 gradów ")

f1 = dxl * dyp - dyl * dxp

f2 = dxl * dxp + dyl * dyp

kątF = Math.Atan(f1 / f2)

kątF = kątF * 200 / Math.PI

If f2 < 0 Then

kątF = 200 + kątF

ElseIf f1 < 0 Then

kątF = kątF + 400

End If

kątF_ety.Text = Format(kątF, " 0.0000 gradów ")

End Sub

Function kontrola_danych() As Boolean

„ funkcja użytkownika (niezwiązana z żadnym obiektem), w całości wpisywana w oknie kodu

Dim okey As Boolean

okey = True

If xl_txt.Text = "" Then okey = False

If xp_txt.Text = "" Then okey = False

If xc_txt.Text = "" Then okey = False

If yl_txt.Text = "" Then okey = False

If yp_txt.Text = "" Then okey = False

If yc_txt.Text = "" Then okey = False

If xl_txt.Text = xc_txt.Text And yl_txt.Text = yc_txt.Text Then okey = False

If xp_txt.Text = xc_txt.Text And yp_txt.Text = yc_txt.Text Then okey = False

If Not okey Then MsgBox("Brak conajmniej jednej współrzędnej, lub punkty sie pokrywają !!", 16, " Błąd danych ")

kontrola_danych = Not okey

End Function

„ Obsługa klawisza ENTER do “przechodzenia” do nastepnego pola tekstowego przy wprowadzaniu danych (kod #13)

Private Sub xl_txt_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles xl_txt.KeyUp

If e.KeyCode = 13 Then yl_txt.Focus() „ SUB generowane w oknie kodu,odpowiednieo z listy lewej obiekt a z listy prawej zdarzenie

End Sub

Private Sub xp_txt_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles xp_txt.KeyUp

If e.KeyCode = 13 Then yp_txt.Focus() „ SUB generowane w oknie kodu,odpowiednieo z listy lewej obiekt a z listy prawej zdarzenie

End Sub

Private Sub xc_txt_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles xc_txt.KeyUp

If e.KeyCode = 13 Then yc_txt.Focus() „ SUB generowane w oknie kodu,odpowiednieo z listy lewej obiekt a z listy prawej zdarzenie

End Sub

Private Sub yc_txt_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles yc_txt.KeyUp

If e.KeyCode = 13 Then xp_txt.Focus() „ SUB generowane w oknie kodu,odpowiednieo z listy lewej obiekt a z listy prawej zdarzenie

End Sub

Private Sub yp_txt_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles yp_txt.KeyUp

If e.KeyCode = 13 Then azymut_prz.Focus() „ SUB generowane w oknie kodu, z listy lewej obiekt a z listy prawej zdarzenie

Private Sub yl_txt_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles yl_txt.KeyUp

If e.KeyCode = 13 Then xc_txt.Focus() „ SUB generowane w oknie kodu,odpowiednieo z listy lewej obiekt a z listy prawej zdarzenie

End Sub

Private Sub długość_prz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles długość_prz.Click

długość_l = (dxl ^ 2 + dyl ^ 2) ^ 0.5

długość_p = (dxp ^ 2 + dyp ^ 2) ^ 0.5

długośćL_ety.Text = Format(długość_l, " 0.000 metrów ")

długośćP_ety.Text = Format(długość_p, " 0.000 metrów ")

współczynniki_prz.Enabled = True

End Sub

Private Sub współczynniki_prz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles współczynniki_prz.Click

Dim al, ap, bl, bp As Single

Dim ro As Single = 200 / Math.PI

al = dxl / długość_l ^ 2 * ro * mnożnik

AL_ety.Text = Format(al, " 0.00000 ") + t

ap = dxp / długość_p ^ 2 * ro * mnożnik

AP_ety.Text = Format(ap, " 0.00000 ") + t

bl = dyl / długość_l ^ 2 * ro * mnożnik

BL_ety.Text = Format(bl, " 0.00000 ") + t

bp = dyp / długość_p ^ 2 * ro * mnożnik

BP_ety.Text = Format(bp, " 0.00000 ") + t

End Sub

Private Sub metr_opc_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles metr_opc.CheckedChanged

If metr_opc.Checked Then t = " [ G/M ] "

mnożnik = 1

współczynniki_prz_Click(sender, e)

End Sub

Private Sub milimetr_opc_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles milimetr_opc.CheckedChanged

If milimetr_opc.Checked Then t = " [ cc/mm ] "

mnożnik = 10

współczynniki_prz_Click(sender, e)

End Sub

Private Sub centymetr_opc_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles centymetr_opc.CheckedChanged

If centymetr_opc.Checked Then t = " [ cc/cm ] "

mnożnik = 100

współczynniki_prz_Click(sender, e)

End Sub

End Class

Jan Ruchel

Kraków, listopad 2010



Wyszukiwarka

Podobne podstrony:
Kąt ze współrzędnych Tabela
Obliczenie azymutu i długości ze współrzędnych
Formularz Obliczenie pól ze współrzędnych prostokątnych
Obliczenie Pól Ze Współrzędnych Prostokątnych, geodezja dzienniki, Dzienniki
azym d│ (2) , Obliczenie azymutu i długości ze współrzędnych
Obliczanie długości odcinka ze współrzędnych i azymut
azym-dl, Obliczenie azymutu i długości ze współrzędnych
Obliczenie azymutu i dlugosci ze wspolrzednych?rtek
Obliczenie azymutu i długości ze współrzędnych
druki, Obliczenie pól ze współrzędnych prostokątnych, Tabela 8
azym d│ (3) , Obliczenie azymutu i długości ze współrzędnych
Obliczenie pól ze współrzędnych prostokątnych
azym d│ , Obliczenie azymutu i długości ze współrzędnych
3 RWE Katy i powierzchnia ze współrzednych
kąty ze współrzednych
Obliczenie azymutu i długości ze współrzędnych
Obliczenie pól ze współrzędnych prostokątnych
Obliczenie pól ze współrzędnych prostokątnych
Obliczenie azymutu i długości ze współrzędnych

więcej podobnych podstron