Changeset 14:3634a208da61
- Timestamp:
- 12/19/10 16:04:29 (5 years ago)
- Branch:
- default
- Children:
- 15:43f5b82f3491, 16:c71c27b09bc7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vector.py
r5 r14 ˆà 1 ˆà from math import *ˆà ˆà 1 import mathˆà 2 2 ˆà 3 3 class Vector(object): ˆà òÀæ òÀæ ˆà 8 8 ˆà 9 9 def __add__(self, other):ˆà 10 ˆà result = Vector( )ˆàˆà 10 result = Vector(0,0)ˆà 11 11 result.x = self.x + other.xˆà 12 12 result.y = self.y + other.yˆà òÀæ òÀæ ˆà 29 29 ˆà 30 30 def is_null(self):ˆà 31 ˆà if abs(self) ˆà 31 if abs(self) == 0 :ˆà 32 32 return 1ˆà 33 33 else :ˆà òÀæ òÀæ ˆà 38 38 ˆà 39 39 def set_rho(self, new_rho):ˆà 40 ˆà self.x , self.y = self.x*(new_rho/abs(self)) , self.y*(new_rho/abs(self))ˆà ˆà 40 if self.is_null() == 1:ˆà ˆà 41 self.x , self.y = new_rho*math.cos(self.phi) , new_rho*math.sin(self.phi)ˆà ˆà 42 else :ˆà ˆà 43 self.x , self.y = self.x*(new_rho/abs(self)) , self.y*(new_rho/abs(self))ˆà 41 44 ˆà 42 45 rho = property(get_rho, set_rho) ˆà 43 46 ˆà 44 47 def get_phi(self):ˆà 45 ˆà cos = self.dot_product(Vector(1,0))/(abs(self)*1)ˆà 46 ˆà if self.y < 0 : ˆà 47 ˆà phi = -acos(cos)ˆà 48 ˆà else :ˆà 49 ˆà phi = acos(cos)ˆà 50 ˆà return phiˆà ˆà 48 phi = math.pi/2 - math.atan2(self.x, self.y)ˆà ˆà 49 if self.is_null == 1:ˆà ˆà 50 phi = 0ˆà ˆà 51 return phiˆà 51 52 ˆà 52 53 def set_phi(self, new_phi):ˆà 53 ˆà self.x , self.y = abs(self)*cos(new_phi) , abs(self)*sin(new_phi)ˆà ˆà 54 rho = abs(self)ˆà ˆà 55 self.x , self.y = rho*math.cos(new_phi) , rho*math.sin(new_phi)ˆà 54 56 ˆà 55 57 phi = property(get_phi, set_phi)ˆà
Note: See TracChangeset
for help on using the changeset viewer.