Python计算空间二面角
定义代表三维笛卡尔坐标系上某个点的Point 类(包括x 、y 、z 三个属性),为该类定义一个方法,可接收second 、third 、forth 三个参数,用于计算当前点、second 、third 组成的面与second 、third 、forth组成的面之间的夹角。
A,B,C,D分别对应于提示point1,point2,point3,point4,线段BC是面ABC与面DBC的公共边,计算俩面空间夹角: cos (夹角) = (X·Y)/|X||Y|,其中X=AB×BC,Y=BC×CD,X·Y代表X与Y的点积,AB×BC代表AB与BC的叉乘
import mathclass Point():def __init__(self,x,y,z):self.x = xself.y = yself.z = zdef distance(self):xx = (self.x) ** 2yy = (self.y) ** 2zz = (self.z) ** 2return (xx + yy + zz) ** (0.5)def vector(self,other):xx = (self.x - other.x)yy = (self.y - other.y)zz = (self.z - other.z)return Point(xx,yy,zz)def cross(self,other):return Point(self.x*other.z-self.z*other.y , self.z*other.x-self.x*other.z , self.x*other.y-self.y*other.x)def dot(self,other):return (self.x*other.x + self.y*other.y + self.z*other.z)# def dot(self, other):# return Point((self.x * other.x),# (self.y * other.y),# (self.z * other.z))def angle(self,second,third,forth):vertor11 = point1.vector(point2)vertor12 = point1.vector(point3)vertor21 = point4.vector(point2)vertor22 = point4.vector(point3)vertor1 = vertor11.cross(vertor12)vertor2 = vertor21.cross(vertor22)return math.acos( (vertor1.dot(vertor2)) / ((vertor1.distance())*(vertor2.distance())) )point1 = Point(0,1,0)
point2 = Point(1,0,0)
point3 = Point(0,0,0)
point4 = Point(0,0,1)angels = point1.angle(point2,point3,point4)
print(math.degrees(angels))
Python计算空间二面角相关推荐
- python空间分析_读书笔记——《python地理空间分析指南》
本文为<Python地理空间分析指南(第2版)>的读书摘录,顺便挖个坑,进一步对python的几个包做学习整理. 本笔记的用途:了解python地理空间处理的技术框架和实现途径. 第三章 ...
- 计算机python程序设计导论,程序设计导论:Python计算与应用开发实践(原书第2版)...
程序设计导论:Python计算与应用开发实践(原书第2版) 语音 编辑 锁定 讨论 上传视频 <程序设计导论:Python计算与应用开发实践(原书第2版)>是2018年机械工业出版社出版的 ...
- 强行终止python_中国的真实离婚率:一点也不高,反而低的惊人 | 用python计算离婚率...
3600字. 现在的网络上,似乎普遍有一种共识,那就是中国的离婚率高的吓人. 各种耸人听闻的标题,比如什么"北上广深等一线城市离婚率高达40%"."天津的离婚率高达70% ...
- python计算计算时间_用Python向孩子介绍计算思维
python计算计算时间 底特律公共图书馆的帕克曼分馆在暑假期间被无聊的孩子拿走了所有计算机所淹没,图书馆认为这不是问题,而是机会. 他们成立了一个编码俱乐部, 帕克曼编码器 ( Parkman Co ...
- python计算生态规模_Python计算生态的构建
本专题的内容结构: 第一部分主要是:如何编写Python第三方库(包和模块) 第二部分主要是:如何编写带有c语言扩展的Python第三方库(包和模块) 第一部分的结构: unit1:深入理解Pytho ...
- 北理工嵩天Python语言程序设计笔记(10 Python计算生态概览)
前言 本文是对<北理工 嵩天/黄天宇/礼欣 Python语言程序设计>的学习笔记,供自己查阅使用. 文章目录 北理工嵩天Python语言程序设计笔记(目录) 北理工嵩天Python语言程序 ...
- MOOC《Python语言程序设计》(第15次)Python计算生态概览(第九周)
MOOC<Python语言程序设计>(第15次) Python计算生态概览(第九周)21.8.26 文章目录 MOOC<Python语言程序设计>(第15次) Python计算 ...
- 【MOOC嵩天Python语言程序设计】第9周 Python计算生态概览
[MOOC嵩天Python语言程序设计]第9周 Python计算生态概览 9.1 从数据处理到人工智能 9.2 实例15:霍兰德人格分析雷达图 9.3 从Web解析到网络空间 9.4 从人机交互到艺术 ...
- python实现 空间前方交会
去年学习摄影测量学的时候,写了python的空间后方交会,想着有时间也写写前方交会,但一直没落实,今年疫情在家,开了一门数字摄影测量课程,再次重温了前方交会,在家也闲来无事,写写前方交会代码 pyth ...
最新文章
- 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
- C语言字符串排序!_只愿与一人十指紧扣_新浪博客
- Failed to find data source: text
- java学习笔记十一——对象转型
- 从堆里找回“丢失”的代码
- 前端学习(2887):如何短时间内实现v-for createApp解决方案
- 浅析支付系统的整体架构
- RTX5 | 内存池02 - 剩下几个API
- 查看tar文件的顶层目录
- CoreAnimation-CALayer简述
- 分享12306全自动验证码识别提交,春运抢票准备时
- (转)DPDK收发包处理流程01 -- 网卡初始化
- java调用用友eai_U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言...
- vs2015 vc14编译libcurl
- 天正建筑2016破解版 64位/32位最新版
- Servlet的三个名字
- 用arduino uno的串口读取JY61角度传感器的角速度、加速度、角度数据MPU6050
- 使用turtle库,绘制一个正方形。
- 强化学习笔记(2)深度学习tensorflow2.5以上版本环境安装
- 淘宝商品详情接口抓取
热门文章
- POJ1163 The Triangle
- java18(MySQL JDBC)
- 干货|人声混音的4大技巧与思路 MZD Studios
- 利用计算机测地震是计算机的什么,六年级计算机测试题
- Android百度地图水波纹动画,高德地图实现水波纹扩散
- java中(person类)
- 树莓派 Raspberry Pi 3B+ 无线路由器, WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集
- python判断成年_用python判断你是青少年还是老年人
- 2020年数学建模国赛C题完整代码下载链接处
- html设置手写输入,手写登陆页面