You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
700 B
30 lines
700 B
from sympy import *
|
|
_x = symbols('x')
|
|
_y = symbols('y')
|
|
class circle:
|
|
def __init__(self,x,y,r):
|
|
self.x = x
|
|
self.y = y
|
|
self.r = r
|
|
|
|
def get_expr(self):
|
|
return self.r**2 - (pow(_x-self.x,2) + pow(_y-self.y,2))
|
|
|
|
def get_x(self,y):
|
|
expr = self.get_expr()
|
|
expr = expr.subs(_y,y)
|
|
return solve(expr,_x)
|
|
|
|
def get_y(self,x):
|
|
expr = self.get_expr()
|
|
expr = expr.subs(_x,x)
|
|
return solve(expr,_y)
|
|
|
|
def get_diff(self,dydx=True):
|
|
expr = self.get_expr()
|
|
if dydx:
|
|
return expr.diff(_x)
|
|
else:
|
|
return expr.diff(_y)
|
|
if __name__ == "__main__":
|
|
unit_circle = circle(0,0,1)
|