给定空间的四个点的笛卡尔积坐标,使用python、shell计算二面角
简单介绍
其中A,B,C,D是以列表形式给出的直角坐标 (例如: A = [x, y, z] )
给出4个原子的坐标A、B、C、D(应该是笛卡尔坐标,内坐标的话也就不需要算了)
注意4个原子的顺序(这涉及到二面角的大小,正负,可以参考各种分子可视化软件的选择二面角方法)
求三个向量a = B-A, b = C-B, c = D-C(这一步需要注意减法的顺序,因为这决定了向量的方向,从而决定了平面法向量的方向)
使用数学上向量的方法叉乘,n1=a×b,n2=b×c;(注意顺序,决定了法向量的方向,方向错了二面角会错)
得出的两个法向量用余弦定理求角度 θ = arccos(n1·n2)/(|n1|*|n2|)
由于之前我们严格定义了各种矢量的方向,所以得出的即四个原子的二面角(写程序的时候注意弧度与角度之间的转化)
数学原理:
叉乘会根据给定的两个向量的方向和大小给出法向方向的向量(方向:右手定则)
A,B,C 就对应着AB,BC两个向量,叉乘给出的法向量方向是唯一的,而根据平面法向量和平面上的向量相互正交的性质列方程解方程组得到的法向量是有正负两个方向的(因为正负两个方向都满足正交的条件,算二面角的时候就会出现问题)
同理,B,C,D也会给出一个唯一方向的法向量,两个法向量之间会有(0,180°)的夹角,算出的cosθ=(n1·n2)/(|n1|*|n2|)也会有正负的分别,但根据余弦图像可得,每一个值都对应着一个在(0,180°)内确定的角度。
参考引用
参考链接一
参考链接二
参考链接三
参考链接四
给定空间的四个点的笛卡尔积坐标,使用python、shell计算二面角相关推荐
- 【机器学习】隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现
[机器学习]隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现 一.维特比算法 二.python实现 参考资料 隐马尔可夫模型状态序列预测问题是指给定模型 λ=[A,B,∏]\la ...
- SSM框架之酒店管理系统十四(C端完善前台用户登录、计算日期之间的天数、房间预订)
SSM框架之酒店管理系统十四(C端完善前台用户登录.计算日期之间的天数.房间预订) 当用户点击预定的时候,判断是否有登录的session 1.修改用户登录时保存的sessuin中的key 如果不修改的 ...
- python星期计算_Python简单计算给定某一年的某一天是星期几示例
本文实例讲述了Python简单计算给定某一年的某一天是星期几.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #计算某特定天使星期几 #蔡勒公式:w=y+[y/4]+[ ...
- U3D 如何计算一个UI四个角的绝对坐标
U3D 如何计算一个UI四个角的绝对坐标 //方式一,使用API获取var rtrans = gameObject.GetComponent<RectTransform>();Vect ...
- 7-99 整数的分类处理 (7 分)给定 N 个正整数,要求你从中得到下列三种计算结果:A1 = 能被 3 整除的最大整数A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数A3
7-99 整数的分类处理 (7 分) 给定 N 个正整数,要求你从中得到下列三种计算结果: A1 = 能被 3 整除的最大整数 A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数 A3 = ...
- 使用计算机先按ON键,小学四年级上册数学课件:《用计算器计算》
[导语]课件是根据教学大纲的要求,经过教学目标确定,教学内容和任务分析,教学活动结构及界面设计等环节,巧设课件,激发兴趣,可以给数学学习动力:情注文本,感受数学体温,则可以让数学学习成为生活需要.下面 ...
- oracle其他盘添加表空间吗,oracle增加表空间的四种方法
实例1: 在中,磁盘空间不足是DBA都会遇到的问题,问题比较常见. --1查看表空间已经使用的百分比select a.tablespace_name,a.bytes/1024/1024 "S ...
- 抖音数据分析工具pc端_用于分析Windows PC上硬盘空间的四个最佳免费工具
抖音数据分析工具pc端 When your hard drive starts to fill up, you don't have to dig through File Explorer to s ...
- Python知识点以及相关练习题(四万余字总结)期末Python知识点总结
Python知识点以及相关练习题 一.变量和类型 二.分支结构 三.循环结构 四.函数和模块的使用 五.字符串和常用数据结构 六.面向对象编程基础 七.面向对象进阶(含小游戏案例源码) 一.变量和类型 ...
最新文章
- Vista光线效果photoshop教程
- [Asp.net]绝对路径和相对路径
- “互联网+”谋定文物市场-国情讲坛·宗佩山:构建共享平台
- 阐述Linux动态库的显式调用
- Swift-闭包理解
- 记录下Linux难记实用的命令
- 学校计算机教室安全预案,小学校园微机室安全事故应急疏散预案
- 有人回嘴顶撞过驾校教练吗?后果怎样?
- 如何解决json中携带的反斜杠_【经验分享】python干货:5种反扒机制的解决方法...
- python文件之间的相互调用_「Python 系列」 Python 生成器函数详解
- Python爬虫入门学习线路图2019最新版
- 幻想影院添加html渲染,幻想影院无毒版-幻想影院清爽版预约 _5577安卓网
- C++信息学奥赛一本通_1020
- 小程序开发合同_如何开发微信小程序?
- 网站是备案域名还是服务器,网站备案是域名还是服务器
- python接口自动化3-自动发帖(session)
- Macbook Pro 外接显示器关闭內建屏幕的方法,开盖状态
- 如何更改SpringBoot控制台图标?只需一步!
- 【现控】时不变连续系统
- 企业微信小程序获取手机号?
热门文章
- Codeforces 712A Memory and Crow
- linux下激活窗口 qt_Qt激活窗口
- 数据标注:光鲜背后的付出
- 三菱fx2n64mr说明书_三菱基本单元 FX2N-64MR-001
- php安全新闻早八点-Microdoor-第二季
- 猫猫龙猫猫004:vim编辑器理解和命令
- 【编程练习】小强去春游
- 抖音主页位置怎么自己创建服务器,抖音个人主页在哪?怎么设置?
- WordPress码支付支付插件 WordPress付费阅读查看插件 付费下载插件
- cd.ssh bash: cd.ssh: 未找到命令.../没有这个文件或目录