from array import array
import math
class Vector2d(Obecjt):
typecode='d'
def __init__(self,x,y):
self.__x,self.__y=float(x),float(y)
@property
def x(self):
return self.__x
@property
def y(self):
return self.__y
def __iter__(self):
return (i for i in (self.x,self.y))
def __repr__(self):
class_name=type(self).__name__
return '{0}({1!r},{2!r})'.format(class_name,*self)
def __str__(self):
return str(tuple(self))
def __bytes__(self):
return (bytes([ord(self.typecode)])
+bytes(array(self.typecode,self)))
def __eq__(self):
return tuple(self)==tuple(other)
def __hash__(self):
return hash(self.x)^hash(self.y)
def __abs__(self):
return math.hypot(self.x,self.y)
def __bool__(self):
return bool(abs(self))
def angle(self):
return math.atan2(self.y,self.x)
def __format__(self,fmt_spec=''):
if fmt_spec.endswith('p'):
fmt_spec=fmt_spec[:-1]
coords=(abs(self),self.angle())
outer_fmt='<{},{}>'
else:
coords=self
outer_fmt='({},{})'
components=(format(c,fmt_spec) for c in coords)
return outer_fmt.format(*components)
@classmethod
def frombytes(cls,octets):
typecode=chr(octets[0])
memv=memoryview(octets[1:]).cast(typecode)
return cls(*memv)
Vector2d
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、音频 maisy 2、视频 无 3、游戏 今天在家里的时候,玩了魔法棒的游戏。 M: we can use t...
- 这两天医生端第一版开发完了,正在进行测试。由于上个健康管理卫士是写的第一个项目,项目中的代码非常的乱。所以在医生端...