Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://kodomo.cmm.msu.su/trac/tanchiki/browser/tanchiki/vector.py?rev=29
Äàòà èçìåíåíèÿ: Unknown
Äàòà èíäåêñèðîâàíèÿ: Tue Apr 12 00:34:28 2016
Êîäèðîâêà: IBM-866
vector.py in tanchiki òÀÓ Tanchiki

source: tanchiki/vector.py @ 29:779e091fb740

Revision 29:779e091fb740, 1.3 KB checked in by Peter Zotov <whitequark@òÀæ>, 5 years ago (diff)

Make Vector.null back.

Lineˆà
1importˆàmath
2
3classˆàVector(object):
4ˆà ˆà ˆà ˆà defˆà__init__(self,ˆàx=0ˆà,ˆày=0):
5ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.x =ˆàx
6ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.y =ˆày
7ˆà ˆà ˆà ˆà
8ˆà ˆà ˆà ˆà defˆà__add__(self,ˆàother):
9ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result =ˆàVector(0,ˆà0)
10ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.x =ˆàself.x +ˆàother.x
11ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.y =ˆàself.y +ˆàother.y
12ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆàresult
13
14ˆà ˆà ˆà ˆà defˆà__mul__(self,ˆàalpha):
15ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result =ˆàVector()
16ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.x =ˆàself.x *ˆàalpha
17ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.y =ˆàself.y *ˆàalpha
18ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆàresult
19
20ˆà ˆà ˆà ˆà defˆàdot_product(self,ˆàother):
21ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆà self.x*other.x +ˆàself.y*other.y
22
23ˆà ˆà ˆà ˆà defˆà__abs__(self):
24ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆà(self.x**2ˆà+ˆàself.y**2)**0.5
25ˆà ˆà ˆà ˆà
26ˆà ˆà ˆà ˆà defˆà__str__(self):
27ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆà"(%s, %s)"ˆà%ˆà(self.x,ˆàself.y)
28
29ˆà ˆà ˆà ˆà defˆàis_null(self):
30ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàabs(self)ˆà==ˆà0ˆà:
31ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆà1
32ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà elseˆà:
33ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆà0
34
35ˆà ˆà ˆà ˆà defˆànormalize(self):
36ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result =ˆàVector()
37ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.x =ˆàself.x
38ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.y =ˆàself.y
39ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà result.rho =ˆà1
40ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆàresult
41
42ˆà ˆà ˆà ˆà defˆàget_rho(self):
43ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆàabs(self)
44
45ˆà ˆà ˆà ˆà defˆàset_rho(self,ˆànew_rho):
46ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.is_null()ˆà==ˆà1:
47ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.x ,ˆàself.y =ˆànew_rho*math.cos(self.phi)ˆà,ˆànew_rho*math.sin(self.phi)
48ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà elseˆà:
49ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.x ,ˆàself.y =ˆàself.x*(new_rho/abs(self))ˆà,ˆàself.y*(new_rho/abs(self))
50
51ˆà ˆà ˆà ˆà rho =ˆàproperty(get_rho,ˆàset_rho)
52
53ˆà ˆà ˆà ˆà defˆàget_phi(self):
54ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà phi =ˆàmath.pi/2ˆà-ˆàmath.atan2(self.x,ˆàself.y)
55ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.is_null ==ˆà1:
56ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà phi =ˆà0
57ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆà phi
58
59ˆà ˆà ˆà ˆà defˆàset_phi(self,ˆànew_phi):
60ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà rho =ˆàabs(self)
61ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.x ,ˆàself.y =ˆàrho*math.cos(new_phi)ˆà,ˆàrho*math.sin(new_phi)
62
63ˆà ˆà ˆà ˆà phi =ˆàproperty(get_phi,ˆàset_phi)
64
65Vector.null =ˆàVector(0,ˆà0)
Note: See TracBrowser for help on using the repository browser.