最近这几天在复习高数空间几何,本来没有什么,结果计算叉乘算的头都大了 叉乘本来也没有什么技术含量,就是一直重复的计算感觉没有太大意义。 想着这几天学了python,正好编着玩玩。再说好久都没更新了,更新下吧

向量之间的加减点乘都比较简单,就是对应的计算。 稍微显得复杂一点的是叉乘,实际也不复杂,就是一个矩阵的计算。 程序代码如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#coding:utf-8
class Matrix(object):
	"""docstring for Matrix"""
	def __init__(self, i,j,k):
		super(Matrix, self).__init__()
		self.dirs={}
		self.dirs['i']=i
		self.dirs['j']=j
		self.dirs['k']=k
	def __add__(self,obj):
		return (self.dirs['i']+obj.dirs['i'],self.dirs['j']+obj.dirs['j'],self.dirs['k']+obj.dirs['k'])
	def __sub__(self,obj):
		return (self.dirs['i']-obj.dirs['i'],self.dirs['j']-obj.dirs['j'],self.dirs['k']-obj.dirs['k'])
	#点乘就用乘
	def __mul__(self,obj):
		return (self.dirs['i']*obj.dirs['i'],self.dirs['j']*obj.dirs['j'],self.dirs['k']*obj.dirs['k'])
	#叉乘用除代替
	def __div__(self,obj):
		dirsi=self.dirs['j']*obj.dirs['k']-self.dirs['k']*obj.dirs['j']
		dirsj=self.dirs['k']*obj.dirs['i']-self.dirs['i']*obj.dirs['k']
		dirsk=self.dirs['i']*obj.dirs['j']-self.dirs['j']*obj.dirs['i']
		return (dirsi,dirsj,dirsk)
if __name__ == '__main__':
	mat1=Matrix(1,2,3)
	mat2=Matrix(4,5,6)
	print(mat1/mat2)

不过我用python3这个除法运算符总是不能重载,也是无语了。 不得不说,python作为脚本语言确实真挺方便,效率之类的要求不高就用它了。 平时编写java用idea得卡很长时间,python平时开个sublime就够用了。 最近偶尔再看python的web应用,看得差不多了来实践实践

最近博客主题一直换过来换过去的,一直看不到非常满意的,有时间了自己改改希望找到个满意的吧。