Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import matplotlib.pyplot as plt
- print("Program liczący punkty z domiarów prostokątnych.")
- #xa = float(input("wprowadz wspolrzedna x poczatku linii pomiarowej: "))
- #ya = float(input("wprowadz wspolrzedna y poczatku linii pomiarowej: "))
- #xb = float(input("wprowadz wspolrzedna x konca linii pomiarowej: "))
- #yb = float(input("wprowadz wspolrzedna y konca linii pomiarowej: "))
- xa=212.31
- ya=588.23
- xb=291.32
- yb=712.21
- lp_x = [xa, xb]
- lp_y = [ya, yb]
- #ya = a * xa + b
- #yb = a * xb + b
- #listaL, listaD = [], []
- #try:
- # print("jesli punkt znajduje sie po lewej stronie, wprowadz ujemna wartosc l")
- # for punkt in range(0, 1000):
- # l = input(f"wprowadz l{punkt + 1} - odl od A: ")
- # if l == 'x':
- # break
- # listaL.append(float(l))
- # d = float(input(f"wprowadz d{punkt + 1} - domiar: "))
- # listaD.append(d)
- #print(f"obecna liczba punktow: {punkt + 1}, wpisz x by przerwac")
- #except ValueError:
- # print("Musisz podać wartość!")
- listaL=[-12.4, 31.14, 45.11]
- listaD=[32.32, 5.96, -8.78]
- dlAB = math.sqrt((xa-xb)**2+(ya-yb)**2)
- #przedłużenie prostej
- a1=(xb-xa)/(yb-ya)
- b1=xa-a1*ya
- y1 = range(round(ya)-10, round(yb)+10) # lista argumentów x
- x1 = [] # lista wartości
- for i in y1:
- x1.append(a1 * i + b1)
- a2=-1/a1
- y2=range(0, 100)
- xn, yn, bn, x2 = [], [], [], []
- for i in range(len(listaL)):
- if listaD[i] <= 0:
- xn.append(xa + listaL[i] * (xb-xa)/dlAB - listaD[i] * (yb-ya)/dlAB)
- yn.append(ya + listaL[i] * (yb-ya)/dlAB + listaD[i] * (xb-xa)/dlAB)
- else:
- xn.append(xa + listaL[i] * (xb-xa)/dlAB - listaD[i] * (yb-ya)/dlAB)
- yn.append(ya + listaL[i] * (yb-ya)/dlAB + listaD[i] * (xb-xa)/dlAB)
- bn.append(xn-a2*yn)
- for i in y2:
- x2.append(a2*i+bn)
- plt.plot(y2, x2)
- plik_wyjsciowy = open("wyniki.txt", "w")
- for i in range(len(xn)):
- plik_wyjsciowy.write("punkt " + str(i+1) + " x: " + str(round(xn[i], 2)) + ", y: " + str(round(yn[i], 2)) + "\n")
- plik_wyjsciowy.close()
- plt.plot(y, x)
- plt.plot()
- plt.plot(lp_y, lp_x, 'r')
- plt.plot(lp_y, lp_x, 'r^')
- plt.plot(yn, xn, 'bo')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement