【源码】网球发球曲线的仿真模拟

2023-11-21 11:30

本文主要是介绍【源码】网球发球曲线的仿真模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=jpeg


用户可以自定义网球的初始位置、速度和旋转

The user defines the initial position, velocity, and spin of the tennis ball. 


单位分别是磅、英尺、秒。

The units are pounds, feet, seconds. 


网球场坐标为:

X-平面,垂直于网格

Y-平面,平行于网格

Z-离地高度

The tennis court coordinates are: 

x - ground, perpendicular to net 

y - ground, parallel to net 

z - height above ground 


网球路径取决于3种作用力:

1)重力

2)阻力

3)升力

The path taken depends on 3 forces: 

1) gravity (constant 32 ft/s^2 in -z direction 

2) drag (proportional to v^2 and in -v-hat direction 

3) lift (proportional to cross product of spin and velocity) 


阻力的比例常数与大气密度、球的横截面积、阻力系数和质量的倒数成正比:

The proportionality constant of the drag force is proportional to the atmosphere density, the cross-sectional area of the ball, the coefficient of drag, and the inverse of mass: 

k_D = C_D*rho_atmosphere*area/(2*mass) 


球的旋转使它上升。表达形式为:

Spin of the ball causes it to lift. The constant has similar form: 

k_L = C_L*rho_atmosphere*area/(2*mass) 


旋转将增加发球时的误差范围

Spin will increase the margin of error when serving. 


上旋(+y分量)产生向下的力,使球落下,需要发球者以更大的初始角度击球。

A top-spin (+y-component) creates a downward force causing the ball to drop and allowing the server to hit the ball at a greater initial angle. 


通过将y分量设置为负值,可以产生”回旋球“。

Backspin is created by setting the y-component to a negative value. 


网球曲线是通过4/5阶的龙格-库塔-费尔伯格方法进行求解的。

Propagation is via a Runge-Kutta-Fehlberg method of order 4/5.


模型标记条件:球弹出球场、球撞网或球反弹。

The model flags conditions: ball moves out of court, ball hits net, or ball bounces. 


反弹是用一个恢复参数来建模的,如果存在旋转,则是一个夹点参数,用于根据与地面接触时的滑动来更正速度。

The bounce is modeled with a restitution parameter and, if there is spin, a grip parameter to modify the velocities based on slipping during contact with the ground.


本代码有助于分析网球比赛的视频,以对发球初始条件进行反向工程,进行游戏模拟,以及“最终位置对初始发球位置、速度和旋转有多敏感”等假设问题。

Useful for analyzing video of tennis games to reverse-engineer initial conditions of a serve, for game simulations, and for what if questions such as "How sensitive is the final position to the initial serve position, velocity, and spin?" 


网球运动在火星上会是什么样子的?

"What would tennis look like on Mars?" 


空气密度如何影响网球的发球?

"How does atmospheric density affect tennis serves?"


参考文献: 

Danby, J. M. A. (1997) Computer Modeling: From Sports to Spaceflight ... From Order To Chaos, Willmann-Bell, Inc., Richmond, VA., p. 159.

这篇关于【源码】网球发球曲线的仿真模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402088

相关文章

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效