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 >>> ...
随机推荐
- 12.2 VUE学习之-if判断,实践加减input里的值
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- js操作地址栏
//判断地址里是否有?号,如果没有就从最后一个/截到最后,如果有?就从最后一个/截至?号处 listTable.url = location.href.lastIndexOf("?" ...
- 批量导出ppt中内嵌的图片
某个ppt中很多页,然后插入了很多图片,且图片都是被压缩的,看起来非常费劲,所以想着一次性把图片另存为,找了接近一个小时,终于被我找到啦,分享给大家: 1.直接把ppt的后缀修改为rar 2.解压ra ...
- Android 线程那些事儿
前言:前面写的线程简直是一坨废物,到现在依然一头雾水,真是一点点都没领悟,于是又打算下一番功夫了,必须要学好线程,不然今后也是一坨废物. 1.理解了一点调试时,到线程阶段总是报错的一个原因,就是系统会 ...
- android/libs/libammsdk.jar" already exists! 解决方法
Error: Uh oh!"/work/2016/fengkongbao/.meteor/local/cordova-build/platforms/android/libs/libamms ...
- 设计模式之第14章-命令模式(Java实现)
设计模式之第14章-命令模式(Java实现) “小明,滚出去.”“小明,这个问题怎么做?”(可怜的小明无奈躺枪.小明:老师,我和你有什么仇什么怨,我和你有什么仇什么怨啊到底...老师:小明,滚出去.习 ...
- 【POI 2010】反对称 Antisymmetry
题目: 对于一个 $0/1$ 字符串,如果将这个字符串 $0$ 和 $1$ 取反后,再将整个串反过来和原串一样,就称作「反对称」字符串.比如 $00001111$ 和 $010101$ 就是反对称的, ...
- PHP 删除 url 中的 query string
function removeQueryStringFromUrl($url) { if (substr($url,0,4) =="http") { $urlPartsArray ...
- html之表单标签
表单标签的属性: 用于向服务器传输数据 表单能够包含input元素,比如文本字段,复选框,单选框,提交按钮等等 表单还可以包含textarea(简介之类的),select(下拉),fieldset和l ...
- Callable、Future、FutureTask浅析
1.Callable<V>接口 Runnable接口 public interface Runnable { public abstract void run(); } Callable ...