python画画bup_Python中的高效Vector / Point类
实现高效的Vector / Point类的最佳方法是什么(甚至更好:是否有一个),可以在
Python 2.7和3.x中使用?
我找到了the blender-mathutils,但它们似乎只支持Python 3.x.然后是this Vector class,使用numpy,但它只是一个3D矢量.使用具有静态属性(x和y)的像kivy’s vector class(sourcecode)的Vector的列表似乎也很奇怪. (有所有这些列表方法.)
目前我正在使用一个扩展了namedtuple的类(如下所示),但这样做的缺点是无法更改坐标.我认为当成千上万的对象移动并且每次都创建一个新的(矢量)元组时,这可能会成为一个性能问题. (对?)
class Vector2D(namedtuple('Vector2D', ('x', 'y'))):
__slots__ = ()
def __abs__(self):
return type(self)(abs(self.x), abs(self.y))
def __int__(self):
return type(self)(int(self.x), int(self.y))
def __add__(self, other):
return type(self)(self.x + other.x, self.y + other.y)
def __sub__(self, other):
return type(self)(self.x - other.x, self.y - other.y)
def __mul__(self, other):
return type(self)(self.x * other, self.y * other)
def __div__(self, other):
return type(self)(self.x / other, self.y / other)
def dot_product(self, other):
return self.x * other.x + self.y * other.y
def distance_to(self, other):
""" uses the Euclidean norm to calculate the distance """
return hypot((self.x - other.x), (self.y - other.y))
编辑:我做了一些测试,似乎使用numpy.array或numpy.ndarray作为矢量太慢了. (例如,获取一个项目需要几乎两倍的时间,更不用说创建一个数组.我认为它更适合于对大量项目进行计算.)
所以,我正在寻找一个轻量级的矢量类,它具有固定数量的字段(在我的例子中只有x和y),可以用于游戏. (如果已经有一个经过充分测试的车轮,我不想重新发明轮子.)
python画画bup_Python中的高效Vector / Point类相关推荐
- python画画bup_Python Tkinter.X属性代码示例
本文整理汇总了Python中Tkinter.X属性的典型用法代码示例.如果您正苦于以下问题:Python Tkinter.X属性的具体用法?Python Tkinter.X怎么用?Python Tki ...
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- 教你用python在excel中“画画”
有意思系列----教你用python在excel中画画 一.废话不多说,先看看成品 二.实现思路 1.图片相关知识说明 位图: 位图由一个个像素点组成,每个像素点都有自己的颜色.而我们可以操纵这些像素 ...
- 萧井陌 python培训千锋为中钞研究院提供Python培训,助力企业高效数据运营
随着数字化时代到来,数字化应用所产生的各个维度的数据以几何速度不断递增,对企业来说掌握数据信息,得到有效数据结果,依据结果进行企业判断与决策是关乎企业发展的重中之重,所以,通过企业内训提升员工数据分析 ...
- python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解
前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...
- Python培训教程分享:“高效实用” 的Python工具库
作为一名合格Python技术员,对于Python工具库的使用是少不了的,本期Python培训教程就为大家分享的是""高效实用" 的Python工具库",希望能够 ...
- 从15000个Python开源项目中精选的Top30,Github平均star为3707,赶紧收藏!
翻译 | AI科技大本营(ID:rgznai100) 参与 | SuiSui 继推出2017年机器学习开源项目Top 30榜单后,Mybridge AI又推出了一个Python开源项目Top 30榜单 ...
- 收藏!15000个Python开源项目中精选Top30!
来源:授权自AI科技大本营(ID:rgznai100) 本文长度为1700字,建议阅读6分钟 本文基于项目质量.用户参与度以及其他因素为你列出Python开源项目Top 30,建议收藏. 继推出201 ...
- python代码物理_利用python求解物理学中的双弹簧质能系统详解
前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...
最新文章
- webpack笔记(6)调试模式
- 洛谷P2763 试题库问题
- 关于vue+element-ui项目的分页,返回默认显示第一页的问题解决
- 全网最细之抽象类讲解
- matlab窗函数 响应,matlab窗函数设计方案.doc
- 基于RDMA和NVM的大数据系统一致性协议研究
- 遍历mysql大表的小技巧
- python技术分享_分享几个python的使用技巧
- 有趣的算法(四)最通俗易懂的KMP算法解析
- VS如何定制自己的模板信息
- Latex排版论文——傻瓜式操作一晚排出毕业论文
- 微信网页授权,以及如何在本地调试
- 【HTML+CSS+JS】注册页面模板
- 【Android实习】20场面试斩获大厂offer,我学会了什么
- python语言基础(傻瓜式文档)
- Spring配置数据库密码加密
- 【蓝桥杯选拔赛真题15】Scratch碰苹果游戏 少儿编程scratch蓝桥杯选拔赛真题讲解
- 《HelloGitHub》第 81 期
- Linux命令篇:chmod 777 与 chmod +x
- shell——正则表达式
热门文章
- salt java 日志 乱码_Saltstack执行cmd.run重启tomcat后出现日志乱码(15)
- linux open函数_Linux驱动开发 / 字符设备驱动内幕 (1)
- 创建一个带参数的formgoup_gin框架如何获取带文件的formData请求?
- 前端工程师应该达到什么水平,找工作薪资才比较高?
- precede和previous_Previous Analyses of Hungarian Phrase Structure
- visa linux 串口 通信,使用visa进行串口通信
- 云桌面 瘦终端_小米盒子连接Citrix云桌面
- js sort方法根据数组中对象的某一个属性值进行排序(实用方法)
- css未知尺寸的图片的水平和垂直居中
- Inside Kolla - 04 Kolla 目录结构