Advertisement
jimkilled

GRAPHICS V8 graphics.py

Dec 21st, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. # GRAPHICS V8 graphics.py
  2. from math import *
  3.  
  4.  
  5. class Graphic():
  6. def __init__(self, func, f_range=(-10000,10000), type_func='SIMPLE', hide_graphic=False):
  7. self.function = func
  8. self.type = type_func
  9. self.l_range = f_range[0]
  10. self.h_range = f_range[1]
  11. self.hided = hide_graphic
  12. self.dots = []
  13. self.set_dots()
  14.  
  15. def set_dots(self):
  16. if self.type == 'SIMPLE':
  17. self.SIMPLE_set_dots()
  18. elif self.type == 'POLAR':
  19. self.POLAR_set_dots()
  20.  
  21. def SIMPLE_set_dots(self):
  22. x_dots = []
  23. y_dots = []
  24. for x in range(self.l_range, self.h_range):
  25. try:
  26. x /= 100 # Уменьшение x для получения более точного рисунка графика
  27. y = self.set_y_value(x)
  28. x_dots.append(x)
  29. y_dots.append(y)
  30. except Exception:
  31. x_dots.append(None)
  32. y_dots.append(None)
  33. continue
  34. self.dots.append(x_dots)
  35. self.dots.append(y_dots)
  36.  
  37.  
  38. def POLAR_set_dots(self):
  39. x_dots = []
  40. y_dots = []
  41. for t in range(0, int(2*pi*100)):
  42. try:
  43. t /= 100 # Уменьшение x для получения более точного рисунка графика
  44. r = self.set_y_value(t)
  45. x = r * cos(t)
  46. y = r * sin(t)
  47. x_dots.append(x)
  48. y_dots.append(y)
  49. except Exception:
  50. x_dots.append(None)
  51. y_dots.append(None)
  52. continue
  53. self.dots.append(x_dots)
  54. self.dots.append(y_dots)
  55.  
  56.  
  57. def get_dots(self):
  58. return self.dots
  59.  
  60. def set_y_value(self, x):
  61. func = self.function
  62. return eval(func)
  63.  
  64. def get_y_value(self, x):
  65. if x not in self.dots[0]:
  66. try:
  67. y = self.set_y_value(x)
  68. return y
  69. except Exception:
  70. return None
  71. else:
  72. index = self.dots[0].index(x)
  73. return self.dots[1][index]
  74.  
  75. def main():
  76. graph = Graphic('x**2',type_func='POLAR')
  77. print(*graph.get_dots())
  78.  
  79.  
  80. if __name__ == '__main__':
  81. main()
  82.  
  83. # made by George Golubev Lyceum №8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement