Advertisement
jimkilled

GRAPHICS V6 graphics.py

Dec 16th, 2020 (edited)
753
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.54 KB | None | 0 0
  1. from math import *
  2.  
  3.  
  4. class Graphic():
  5.     def __init__(self, func, f_range=(-10000,10000), hide_graphic=False):
  6.         self.function = func
  7.         self.l_range = f_range[0]
  8.         self.h_range = f_range[1]
  9.         self.hided = hide_graphic
  10.         self.dots = []
  11.         self.set_dots()
  12.  
  13.     def set_dots(self):
  14.         x_dots = []
  15.         y_dots = []
  16.         for x in range(self.l_range, self.h_range):
  17.             try:
  18.                 x /= 100                                   # Уменьшение x для получения более точного рисунка графика
  19.                 y = self.set_y_value(x)
  20.                 x_dots.append(x)
  21.                 y_dots.append(y)
  22.             except Exception:
  23.                 x_dots.append(None)
  24.                 y_dots.append(None)
  25.                 continue
  26.         self.dots.append(x_dots)
  27.         self.dots.append(y_dots)
  28.  
  29.     def get_dots(self):
  30.         return self.dots
  31.  
  32.     def set_y_value(self, x):
  33.         func = self.function
  34.         return eval(func)
  35.  
  36.     def get_y_value(self, x):
  37.         if x not in self.dots[0]:
  38.             try:
  39.                 y = self.set_y_value(x)
  40.                 return y
  41.             except Exception:
  42.                 return None
  43.         else:
  44.             index = self.dots[0].index(x)
  45.             return self.dots[1][index]
  46.  
  47. def main():
  48.     graph = Graphic('1/x')
  49.     print(*graph.get_dots())
  50.     print()
  51.     print(graph.get_y_value(1))
  52.     print()
  53.     print(graph.get_y_value(0))
  54.  
  55.  
  56. if __name__ == '__main__':
  57.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement