Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # GRAPHICS V8 graphics.py
- from math import *
- class Graphic():
- def __init__(self, func, f_range=(-10000,10000), type_func='SIMPLE', hide_graphic=False):
- self.function = func
- self.type = type_func
- self.l_range = f_range[0]
- self.h_range = f_range[1]
- self.hided = hide_graphic
- self.dots = []
- self.set_dots()
- if self.dots[0].count(None) == len(self.dots[0]) and self.dots[1].count(None) == len(self.dots[1]):
- self.dots = []
- print(1)
- def set_dots(self):
- if self.type == 'SIMPLE':
- self.SIMPLE_set_dots()
- elif self.type == 'POLAR':
- self.POLAR_set_dots()
- def SIMPLE_set_dots(self):
- x_dots = []
- y_dots = []
- for x in range(self.l_range, self.h_range+1):
- try:
- x /= 100 # Уменьшение x для получения более точного рисунка графика
- y = self.set_y_value(x)
- x_dots.append(x)
- y_dots.append(y)
- except Exception:
- x_dots.append(None)
- y_dots.append(None)
- continue
- self.dots.append(x_dots)
- self.dots.append(y_dots)
- def POLAR_set_dots(self):
- x_dots = []
- y_dots = []
- for t in range(0, int(2*pi*100)):
- try:
- t /= 100 # Уменьшение x для получения более точного рисунка графика
- r = self.set_y_value(t)
- x = r * cos(t)
- y = r * sin(t)
- x_dots.append(x)
- y_dots.append(y)
- except Exception:
- x_dots.append(None)
- y_dots.append(None)
- continue
- self.dots.append(x_dots)
- self.dots.append(y_dots)
- def get_dots(self):
- return self.dots
- def set_y_value(self, x):
- if self.type == 'POLAR':
- t = x
- func = self.function
- return eval(func)
- def get_y_value(self, x):
- if x not in self.dots[0]:
- try:
- y = self.set_y_value(x)
- return y
- except Exception:
- return None
- else:
- index = self.dots[0].index(x)
- return self.dots[1][index]
- def main():
- graph = Graphic('tg(x)',type_func='SIMPLE')
- print(*graph.get_dots())
- if __name__ == '__main__':
- main()
- # made by George Golubev Lyceum №8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement