jimkilled

GRAPHICS V8 graphics.py

Dec 21st, 2020 (edited)
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.47 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.         if self.type == 'POLAR':
  62.             t = x
  63.         func = self.function
  64.         return eval(func)
  65.  
  66.     def get_y_value(self, x):
  67.         if x not in self.dots[0]:
  68.             try:
  69.                 y = self.set_y_value(x)
  70.                 return y
  71.             except Exception:
  72.                 return None
  73.         else:
  74.             index = self.dots[0].index(x)
  75.             return self.dots[1][index]
  76.  
  77. def main():
  78.     graph = Graphic('x**2',type_func='POLAR')
  79.     print(*graph.get_dots())
  80.  
  81.  
  82. if __name__ == '__main__':
  83.     main()
  84.  
  85. # made by George Golubev Lyceum №8
Add Comment
Please, Sign In to add comment