Wcięcie liniowe

Transkrypt

Wcięcie liniowe
Wcięcie liniowe
Zasada wcięcia liniowego
Wcięcie liniowe polega na określeniu współrzędnych punktu wcinanego C, na podstawie dwu
odległości pomierzonych miedzy wyznaczanym punktem C a dwoma znanymi punktami A i B.
Konstrukcję wcięcia liniowego stanowi trójkąt o podstawie utworzonej przez punkty A i B o znanych
współrzędnych, wierzchołkiem jest Punt wyznaczany C, a ramionami są boki wcinające |BC| = a
i |AC|=b.
1 Obliczenie wcięcia liniowego można zrealizowad przez zamianę na wcięcie kątowe w przód.
Po obliczeniu ze współrzędnych długości |AB| = c, można wyznaczyd kąty Alfa i Beta oraz Gamma z
twierdzenia Carnota (cosinusów), na podstawie znanych długości boków a, b, c.
cos(Alfa) =
(b*b + c*c - a*a)/(2*b*c) = cA/(2*b*c)
cos(Beta) =
(a*a + c*c - b*b) /(2*a*c) = cB/(2*a*c)
cos(Gamma) = (b*b + c*c - a*a) /(2*a*b) = cB/(2*a*b)
Kontrola: Alfa + Beta + Gamma = 200[grad]
2 Wygodnym sposobem rozwiązania wcięcia liniowego jest zastosowanie pomocniczych symboli
rachunkowych prof. Hausbrandta
Kontrola: obliczenie boków ze współrzędnych oraz ewentualnie kątów i ich sumy
Objaśnienia:
cA, cB, cC – carnotiany
F(1) – Funkcja względna prosta pierwsza: F(1) = F1/(Suma elementów dolnych)
F(2) – Funkcja względna prosta druga:
F(2) = F2/(Suma elementów dolnych)
F1 – funkcja pierwsza, inaczej iloczyn wyznacznikowy
F2 – funkcja druga, inaczej iloczyn kolumnowy
F = |a1 b1|a2 b2|
|c1 d1|c2 d2|
F1=a1*d1-b1*c1+a2+d2-b2*c2
F2=a1*c1+b1*d1+a2*c2+b2*d2
4P = 4*Pole trójkąta
Specyfikacja problemu algorytmicznego:
Problem algorytmiczny: Obliczenie współrzędnych punktu C: Xc, yC
Dane wejściowe: Numery punktów A i B – liczby całkowite long
oraz ich współrzędne i długości boków a, b – liczby rzeczywiste podwójne precyzji.
Pseudokod – algorytm w postaci listy kroków – funkcja główna
1.
2.
3.
4.
5.
6.
7.
Otwarcie pliku wyników i wydruk nagłówka, szkicu, wzorów
Wyświetlenie nagłówka programu, szkicu, oznaczeo
Wprowadzenie danych: numery i współrzędne punktów danych A, B, numer punktu wyznaczanego C,
odległości pomierzone a i b
Obliczenia: carnotiany, 4P, współrzędne punktu C, obliczenia kontrolne: boki ze współrzędnych i kąty
Wyświetlenie wyników i zapis do pliku wyników
Pytanie czy koniec obliczeo – jeśli wybór kont==1 to przejdź do kroku 2,
w przeciwnym przypadku – koniec obliczeo
Zamknięcie pliku wyników i wyjście z programu.
SCHEMAT BLOKOWY PROGRAMU
START
Otwarcie pliku wyników
Wydruk do pliku nagłówka programu, szkicu, oznaczeo
Wyświetlenie nagłówka programu, szkicu, oznaczeo
Wprowadzenie danych: numery i współrzędne punktów danych
A, B, numer punktu wyznaczanego C, odległości pomierzone a i b
Obliczenia: carnotiany, 4P, współrzędne punktu C,
obliczenia kontrolne: boki ze współrzędnych i kąty
Wyświetlenie wyników i zapis do pliku wyników
Wczytaj opcję czy kontynuacja obliczeo: 1 -tak
T
Kont==1
N
Zamknięcie pliku wyników i wyjście z programu
STOP
Dodatkowa funkcja - obliczenie odległości ze współrzędnych
double odl(double x1, double y1, double x2, double y2)
Przykład obliczeń
Program wclin2.cpp
Wcięcie liniowe: dane współrzędne punktów A, B oraz boki a i b, wyznaczany punkt C
Oznaczenia: punkt lewy B, punkt prawy A.
Pomierzone boki: lewy: a = |BC|, prawy b = |AC|
Szkic do obliczeń
C - punkt wyznaczany
/ \
a b
/
\
B --(c)- A
Do obliczeń zastosowano wzory prof. Hausbrandta, w postaci symboli rachunkowych
F = |xA yA | xB yB|
|-4P cB | 4P cA|
xC = F(1) yC=F(2)
cA=b*b+c*c-a*a; cB=a^2+c^2-b^2; cC=a^2+b^2-c^2, gdzie np. a^2 = a*a
4P = sqrt(cA*cB+cA*cC +cC*cA)
Kontrola: Długości boków a i b ze współrzędnych
Katy: tan(Alfa) = 4P/cA; tan(Beta) = 4P/cB; tan(Gamma) = 4P/cC
Alfa - kat w punkcie A: Alfa = <(B,A,C), Beta = <(C,B,A), Gamma = <(A,C,B)
Obliczenia
Obliczenie 1
Punkt prawy A: 1 x = 0 y = 4
Punkt lewy B: 2 x = 0 y = 0
a = |BC| = 3 b = |AC| = 5
Obliczone c = |AB| = 4
Wyznaczony punkt 3 : xC = 3 yC= 0
Obliczenia kontrolne
Bok pomierzony a = 3 obliczony = 3
Bok pomierzony b = 5 obliczony = 5
Katy [grad]
Alfa = 40.9666 Beta = 100 Gamma = 59.0334
Suma kątów = 200

Podobne dokumenty