Advertisement
Guest User

Adzioszka <3

a guest
Jan 21st, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. import math
  2. import matplotlib.pyplot as plt
  3.  
  4. print("Program liczący punkty z domiarów prostokątnych.")
  5. #xa = float(input("wprowadz wspolrzedna x poczatku linii pomiarowej: "))
  6. #ya = float(input("wprowadz wspolrzedna y poczatku linii pomiarowej: "))
  7. #xb = float(input("wprowadz wspolrzedna x konca linii pomiarowej: "))
  8. #yb = float(input("wprowadz wspolrzedna y konca linii pomiarowej: "))
  9. xa=212.31
  10. ya=588.23
  11. xb=291.32
  12. yb=712.21
  13. lp_x = [xa, xb]
  14. lp_y = [ya, yb]
  15. #ya = a * xa + b
  16. #yb = a * xb + b
  17.  
  18.  
  19. #listaL, listaD = [], []
  20. #try:
  21. #    print("jesli punkt znajduje sie po lewej stronie, wprowadz ujemna wartosc l")
  22.  #   for punkt in range(0, 1000):
  23.   #      l = input(f"wprowadz l{punkt + 1} - odl od A: ")
  24.    #     if l == 'x':
  25.     #        break
  26.      #   listaL.append(float(l))
  27.       #  d = float(input(f"wprowadz d{punkt + 1} - domiar: "))
  28.        # listaD.append(d)
  29.         #print(f"obecna liczba punktow: {punkt + 1}, wpisz x by przerwac")
  30. #except ValueError:
  31.  #   print("Musisz podać wartość!")
  32.  
  33. listaL=[-12.4, 31.14, 45.11]
  34. listaD=[32.32, 5.96, -8.78]
  35. dlAB = math.sqrt((xa-xb)**2+(ya-yb)**2)
  36.  
  37. #przedłużenie prostej
  38. a1=(xb-xa)/(yb-ya)
  39. b1=xa-a1*ya
  40. y1 = range(round(ya)-10, round(yb)+10)  # lista argumentów x
  41. x1 = []  # lista wartości
  42. for i in y1:
  43.     x1.append(a1 * i + b1)
  44.  
  45. a2=-1/a1
  46. y2=range(0, 100)
  47.  
  48. xn, yn, bn, x2 = [], [], [], []
  49. for i in range(len(listaL)):
  50.     if listaD[i] <= 0:
  51.         xn.append(xa + listaL[i] * (xb-xa)/dlAB - listaD[i] * (yb-ya)/dlAB)
  52.         yn.append(ya + listaL[i] * (yb-ya)/dlAB + listaD[i] * (xb-xa)/dlAB)
  53.     else:
  54.         xn.append(xa + listaL[i] * (xb-xa)/dlAB - listaD[i] * (yb-ya)/dlAB)
  55.         yn.append(ya + listaL[i] * (yb-ya)/dlAB + listaD[i] * (xb-xa)/dlAB)
  56.     bn.append(xn-a2*yn)
  57.     for i in y2:
  58.         x2.append(a2*i+bn)
  59.     plt.plot(y2, x2)
  60.    
  61. plik_wyjsciowy = open("wyniki.txt", "w")
  62.  
  63. for i in range(len(xn)):
  64.     plik_wyjsciowy.write("punkt " + str(i+1) + " x: " + str(round(xn[i], 2)) + ", y: " + str(round(yn[i], 2)) + "\n")
  65. plik_wyjsciowy.close()
  66.  
  67.  
  68.  
  69.  
  70. plt.plot(y, x)
  71. plt.plot()
  72. plt.plot(lp_y, lp_x, 'r')
  73. plt.plot(lp_y, lp_x, 'r^')
  74. plt.plot(yn, xn, 'bo')
  75.  
  76. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement