matlab模拟台球比赛,Matlab 台球模拟程序 动画演示

发布时间:

Oct 21, 2012

更新时间:

Oct 21, 2012

总字数:1669

阅读时间:4m

作者: 谢先斌

Matlab 台球模拟程序 动画演示

代码

axis([-1.6,12.6,-1.6,10.7])%确定坐标轴参数范围

hold on %保持当前图形及轴系的所有特性

fill([-2,13,13,-2],[-2,-2,11,11],[0,1,0]);%填充底座背景

fill([-1,12,12,-1],[-1,-1,10,10],[0,0.5,0]);%填充底座背景

ball1=line(0,5,'color','r','marker','.','erasemode','xor','markersize',60);%设置小球颜色,大小,线条的擦拭方式

ball2=line(8,9,'color','g','marker','.','erasemode','xor','markersize',60);%设置小球颜色,大小,线条的擦拭方式

ball3=line(-1,-1,'color','g','marker','.','erasemode','xor','markersize',80);%设置左下角圆的颜色,大小,线条的擦拭方式

ball4=line(12,-1,'color','g','marker','.','erasemode','xor','markersize',80);%设置右下角圆的颜色,大小,线条的擦拭方式

ball3=line(-1,10,'color','g','marker','.','erasemode','xor','markersize',80);%设置左上角圆的颜色,大小,线条的擦拭方式

ball4=line(12,10,'color','g','marker','.','erasemode','xor','markersize',80);%设置右上角圆的颜色,大小,线条的擦拭方式

title('完全非弹碰在模拟台球比赛的应用', 'color','r','fontsize',15);%图形标题

pause(1)%设定暂停时间的长度

t=0;dt=0.005;%设制初始数值

while t<7.2%设定横轴范围

t=t+dt;%设制横轴计算公式

y=1/2*t+5;%设制纵轴计算公式

set(ball1,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end %结束

while t<8.8%设定横轴范围

t=t+dt;%设制横轴计算公式

y=1/2*t+5;%设制纵轴计算公式

set(ball2,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end %结束

while t<11.5%设定横轴范围

t=t+dt;%设制横轴计算公式

y=-1/2*t+14.3;%设制纵轴计算公式

set(ball2,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end%结束

while t>-0.5%设制横轴范围

t=t-dt;%设制横轴计算公式

y=1/2*t+2.90;%设制纵轴计算公式

set(ball2,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end%结束

while t<6%设制横轴范围

t=t+dt;%设制横轴计算公式

y=-1/2*t+2.40;%设制纵轴计算公式

set(ball2,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end%结束

while t<11.5%设制横轴范围

t=t+dt;%设制横轴计算公

y=1/2*t-3.0;%设制纵轴计算公式

set(ball2,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end%结束

while t>-2%设制横轴范围

t=t-dt;%设制横轴计算公

y=-t*7.65/12.9+9.57;%设制纵轴计算公式

set(ball2,'xdata',t,'ydata',y)%设制球的运动

drawnow;%刷新屏幕

end%结束

text(2,5,'好!进球了啊!!!恭喜!','fontsize',16,'color','r'); %显示字幕的颜色和大小

效果

51d660ef3575316dcd947ce806374ce3.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab解决桌球射击方位角-main.m matlab解决桌球射击方位角: 利用MatLab解决桌球射击方位角问题:        有2个球置于矩形板之上,一个用来做射击球,另一个则是作为目标图,现在考虑的问题是,如何设置射击球的方向,从而撞击目标球,使之进入矩形板的四个角点。可以利用矩形边的反弹,忽略摩擦。 这个问题其实就是桌球射击的理想化的简化版。由于没有摩擦,所以碰撞之后,目标球的行进方向将沿着射击球球心到目标球的球心的射线方向,并且由于没有摩擦,将不需要考虑速度这个概念。简化起见,规定目标球不经过矩形边的反弹直接进洞,而射击球最多只能利用矩形边的反弹1次,我不太了解桌球上的规则如何,但我想这种简化大约也符合普通桌球玩家考虑的瞄准原则吧。        以下涉及到的角度都是以平面直线逆时针旋转与之重合所转的角度,我是这样考虑这个问题的,先从射击球考虑,目标球射入矩形板的四个角洞有四个角度,对于每一个角度,射击球都有一个确定的碰撞,即沿着射击球进洞方向的反方向,换句话说在碰撞一刹那,射击球的球心是确定的,射击球包括原位置,与矩形四条边的映射位置共有5个球心与该球心连成一条射线(该射线方向即射击球瞄准方向),然而还有个限制条件,即射击球只能撞击圆心与目标球两条切线所夹的范围,这样就需要5个镜像点与4个撞击点所连的射线是否符合该限制条件,符合的话就是我们可以瞄准的方向了。 主程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值