python3 定义向量运算
from math import hypot #定义向量的构造方法
class Vector:
def __init__(self,x=0,y=0):
self.x=x;
self.y=y;
'''
__repr__是python的内置方法,他能将一个对象用字符串的形式表达出来
%r用rper()方法处理对象 输出结果 'content'
%s用str()方法处理对象 输出结果 content 不带引号
如果你只想实现这两个特殊方法中的一个,__repr__ 是更好的选择,因为如果一个对象
没有 __str__ 函数,而 Python 又需要调用它的时候,解释器会用 __repr__ 作为替代
''' def __repr__(self):
return 'Vector(%r,%r)' % (self.x,self.y)
'''
定义__abs__方法
返回hypot函数的运算结果
hypot() 返回欧几里德范数 sqrt(x*x + y*y)。
'''
def __abs__(self):
return hypot(self.x,self.y)
'''
bool(abs(self)) 把模值变成了布尔值
我们对 __bool__ 的实现很简单,如果一个向量的模是 0,
那么就返回 False,其他情况则返回 True。 如果想让 Vector.__bool__ 更高效,可以采用这种实现:
def __bool__(self):
return bool(self.x or self.y)
'''
def __bool__(self):
return bool(abs(self))
'''
__add__ 和 __mul__,这两个方法的返回值都是新创建的向量对象,
other代表其他向量对象,
其返回值都是靠运算符 + 或者 * 实现的运算结果 '''
def __add__(self, other):
x=self.x+other.x
y=self.y+other.y return Vector(x,y) def __mul__(self,scalar):
return Vector(self.x*scalar,self.y*scalar) #创建两个向量实例 v1 v2
print('=============================输出两个向量加运算========================')
v1=Vector(2,4)
v2=Vector(2,1)
print(v1+v2)
print('=============================输出单个向量欧几里德运算========================')
# 求该向量的欧几里得范数
v=Vector(3,4)
print(abs(v)) print('=============================输出单个向量的标量乘法运算========================')
print(v*3)
print(abs(v*3)) # (3*3)(3*3) +(4*3)(4*3) 的结果开方
python3 定义向量运算的更多相关文章
- UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)
Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...
- Unity 三角函数 向量 运算
其实三维的和二维的基本差不多,一样的运算方式,unity已经把所有的方法都封装起来,主要是理解,能理解了就直接调用了 三角函数 知识点:三角函数基础正玄余玄.三角函数曲线.弧度制和角度制.弧度制和角度 ...
- 向量运算 与 JavaScript
二维向量都包含两个值:方向(direction)及大小(magnitude) 这两个值可以表达出各种各样的物理特性来,比如力和运动.如两个物体间的碰撞检测. 向量的大小 虽说二维向量是对大 ...
- 3D数学读书笔记——向量运算及在c++上的实现
本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 ...
- 向量运算(lua,三维) 点乘、叉乘、模、夹角
向量运算在游戏制作中经常用到,稍微总结一下. 一.点乘 如图,假设 向量a与b的点乘表示a在b上的投影与b的模的乘积 公式: 代码: function MathHelper.GetVector3D ...
- Eigen中的矩阵及向量运算
Eigen中的矩阵及向量运算 ,[+,+=,-,-=] ,[\*,\*=] ,[.transpose()] ,[.dot(),.cross(),.adjoint()] ,针对矩阵元素进行的操作[.su ...
- 快速电路仿真器(FastSPICE)中的高性能矩阵向量运算实现
今年10-11月份参加了EDA2020(第二届)集成电路EDA设计精英挑战赛,通过了初赛,并参加了总决赛,最后拿了一个三等奖,虽然成绩不是很好,但是想把自己做的分享一下,我所做的题目是概伦电子出的F题 ...
- Matlab矩阵基本操作(定义,运算)
转自:http://blog.csdn.net/perfumekristy/article/details/8119861 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ...
- Python3基础-分数运算
Python3分数运算 fractions 模块可以被用来执行包含分数的数学运算. 案例 >>> from fractions import Fraction >>> ...
随机推荐
- C语言实现判断分数等级
从屏幕上输入一个学生的成绩(0-100),对学生成绩进行评定: <=60为"E" 60~69为"D" 70~79为"C" 80~89为 ...
- Windows Server 2008 正式版下载汇总
windows 2008是微软推出的新一代服务器专用系统版本, 具有良好的用户体验以及应用程序,windows 2008大幅提升了web服务以及应用程序的性能, 让企业在提供和维护资源服务的时候更加得 ...
- 南阳 ACM16 矩形嵌套 动态规划
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c, ...
- 2018年江西理工大学C语言程序设计竞赛(高级组) 三角平方数
题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平 ...
- Leetcode 515. 在每个树行中找最大值
题目链接 https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/description/ 题目描述 您需要在二叉树的 ...
- P1880 [NOI1995]石子合并【区间DP】
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- 自动检测ARouter路由地址分组使用冲突问题
背景 项目中使用ARouter进行路由,由于不同上层业务模块都可能会使用到同一目标的路由地址,因此,将所有业务模块的路由地址以一种类似静态常量的方式设置在Base模块中.这样,在实际目前上加上对应此地 ...
- ajax跨域请求的处理
跨域的情形有很多种,网上有人给出了一份表格, 表格中标识为”不允许”通信的情况都属于跨域.实际网络服务中需要跨域的情况确实存在,于是开发者们提供了一种解决方案,就是使用jsonp格式进行数据交互,它不 ...
- Python+Selenium中级篇之-Python读取配置文件内容
本文来介绍下Python中如何读取配置文件.任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里我们就介绍一种配置文件格式的读取数据,叫ini文件.Python中有一 ...
- 聊聊、RabbitMQ 配置文件
windows 下面安装 rabbitMQ 比较简单,但是想去改端口相关信息却找不到配置文件在哪.Linux 在 /etc/rabbitmq/rabbitmq.config 下面就可以找到.来看看 w ...