java 弹性碰撞_球体弹性碰撞位置和速度计算算法
#本人原创,费了不少功夫计算推导公式,通过验证非常完美
#两球的位置和速度,R为半径,这里设质量一样,容易加上不同的质量和半径
def collide(loc1,loc2,sp1,sp2):
x,y=loc1
x2,y2 = loc2
dlx,dly = x-x2,y-y2
dx,dy = sp1
dx2,dy2 = sp2
dvx,dvy = dx-dx2,dy-dy2
#假如当前“碰撞过度”则回到之前的位置再求相切时的位置
if dlx**2+dly**2
x,y = x-dx , y-dy
x2, y2 = x2-dx2, y2-dy2
dlx, dly = x-x2, y-y2
b = R**2*(dvx**2+dvy**2)-(dlx*dvy - dly*dvx)**2
#计算碰撞的时间
p = -dlx*dvx -dly*dvy+ math.sqrt(b)
p2 =-dlx*dvx -dly*dvy - math.sqrt(b)
if dvx**2 + dvy**2==0:
t=1
#因为会相切两次所以有两个解,取较小一个
else:
temp = min((abs(p),abs(p2)))
t = (temp)/(dvx**2 + dvy**2)
#碰撞时的位置
loc1 = x + t*dx , y +t*dy
loc2 = x2 + t*dx2, y2 + t*dy2
## print(math.sqrt((loc1[1]-loc2[1])**2+(loc1[0]-loc2[0])**2))
#碰撞后的速度改变,求动量交换
if dly==0:
ey=0
ex=dvx
else:
k = dlx/dly
ey=(dvy+k*dvx)/(1+k*k)
ex=k*ey
sp1 = dx -ex, dy-ey
sp2 = dx2+ex, dy2 + ey
return [loc1,loc2 ,sp1, sp2]
java 弹性碰撞_球体弹性碰撞位置和速度计算算法相关推荐
- 高、低成本MEMS惯导系统姿态、位置、速度更新算法的对比
高.低成本MEMS惯导系统姿态.位置.速度更新算法的对比 一.高成本MEMS惯导系统姿态.位置.速度更新算法 1.速度更新 2.位置更新 3.姿态更新 4.程序仿真及实验结果 4.1 主函数 4.2 ...
- 自车坐标系下的物体相对和绝对位置和速度计算
自车坐标系与绝对坐标系的速度位置换算原理 自车坐标系 坐标系--右-前-天坐标(RFU) 坐标系--前-左-上(FLU) 位置换算 速度换算 示意图 情形一 情形二 小结 参考 自车坐标系 自车坐标系 ...
- svd协同过滤java实现_利用 SVD 实现协同过滤推荐算法
奇异值分解(Singular Value Decomposition,以下简称SVD) 是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域. ...
- 不规则现金流 java设计_第三节不规则现金流的计算
1.以下关于净现值的描述,错误的是( ). A.净现值越大的项目,其内部报酬率一定越高 B.选定融资成本率为贴现率,净现值大于零的项目是有利可图的 C.贴现率越高,净现值越小 D.某项目的净现值是指 ...
- java 节气_谁有关于24节气的算法,最后有java实现的代码
展开全部 以下是查表算法调用 jieqi(int Y, int M, int D)传入年月日返回节气,如果非节气返回null 注意传入的62616964757a686964616fe58685e5ae ...
- 西门子V90 PN伺服_常用通信报文(速度+位置)的基本介绍
西门子V90 PN伺服_常用通信报文(速度+位置)的基本介绍 V90 PN速度模式通信报文: 标准报文1 标准报文2 标准报文3 标准报文5(DSC) 西门子报文102 西门子 ...
- 电机高频注入原理_永磁同步电机转子位置与速度估算的新方法,精度好,性价比高...
北京航空航天大学惯性技术重点实验室.北京市高速磁悬浮电机技术及应用工程技术研究中心的研究人员赵远洋.韩邦成.陈宝栋,在2019年第15期<电工技术学报>上撰文指出(论文标题为"基 ...
- linux中jdk添加字体_在Linux上为Openjdk Java定义/安装字体的位置
在Ubuntu上安装了Oracle 8 jdk,在jre/lib中它具有各种fontProperties文件和一个包含字体的字体目录.但是,当安装OpenJdk 8时,jre/lib中的字体文件上没有 ...
- java 多线程写缓存,Java多线程_缓存对齐
1.什么是缓存对齐 当前的电脑中,数据存储在磁盘上,可以断电保存,但是读取效率较低.不断电的情况下,数据可以在内存中存储,相对硬盘效率差不多是磁盘的一万倍左右.但是运算时,速度最快的是直接缓存在CPU ...
最新文章
- ElasticSearch面试题
- DIY一个DNS查询器:了解DNS协议
- 学Android开发 这19个开发工具助你顺风顺水
- 《信息系统项目管理师软考辅导——3年真题详解与全真模拟》主要创新点、关注点...
- 记录mysql客户端所有的操作
- poj 1077 eight
- 通过VsPhere体验MAC OS X
- 14-磁盘管理-df,du命令,磁盘分区
- 用深度学习进行语音识别为什么还要算mfcc?
- 使用Nssm部署Exe程序为服务
- 进销存php 百度云盘,fb1334 PHP网络版进销存源码WEB进销存源码含说明
- 4.jvm入门到精通
- 云服务器被攻击了快速解决方案
- eclipse右下角出现 linking viewer selection with current editor 而且停不掉 导致eclipse很卡
- git clone失败:Cloning into... fatal: unable to access... error setting certificate verify locations
- 【小样本基础】深度学习中的元学习:元学习的理解、经典MAML算法、用元学习解决具体问题的思路、元学习的分类
- 安装ie9提示未能完成安装_win7系统安装Ie提示“Internet explorer未能完成安装”的解决方法...
- 山洪灾害监测预警系统
- 使用两次Hash的Hash表——Twice_Hash_Map
- 4年经验来面试25K的测试岗,连基础都不会,还不如招应届生。
热门文章
- C++函数重载解析细节
- 计算机知识体系图谱总结
- JS中的Map和Set实现映射对象
- arm poky linux,Solved: Re: arm-poky-linux - NXP Community
- 免费旅游项目html,HTML+CSS+JavaScript项目2 “说旅游”专题页制作_0518_连蕊.pptx
- nginx部署两个php虚拟主机,nginx服务器,fastcgi模式,添加虚拟主机(多站点)配置...
- php7 ipv6,php将ipv4/ipv6的真实ip转换为数字
- CodeFirst的EF6迁移和时间戳错误
- 如何使用泛型在新的可空上下文中启动健壮的C#项目?
- (三)标记图像以进行AI模型训练