画圆 circ Circle(Point(50,50),40) circ: Circle center: Point radius: 40 50 X: draw() y:50 move(
Point 5050 x: y: circ: Circle40 center: radius: draw( ) move( )
编程实例:炮弹飞行模拟 给定发射角度、初始速度以及初始的高度,希 望计算出炮弹飞行的距离 程序规格 输入:发射角,初速度,初始高度 输出:射程 注: (1)采用微积分,可以直接导出炮弹位置的公式,但此 处我们不用微积分,而是只用一些基本常识,通过 一步一步迭代计算来解决 (2)不考虑风阻力,只考虑重力 6
6
编程实例:炮弹模拟 算法 输入模拟参数:角度,速度,高度,计算位置变化的时间间 隔 计算炮弹初始位置xpos,yPos 计算炮弹初始水平和垂直速度xvel,yvel 当炮弹还在飞行,循环: 更新一个时间间隔之后的xpos,ypos,yvel 输出xpos 7
7
编程实例:炮弹模拟(续) def main() angle input ("..(in degrees)" vel input("...(in meters/sec)") 才 ho input("...(in meters)") time input("...(in seconds)") velocity yvel=velocity*sin(theta) xpos,ypos =0.0,h0 theta ...d theta angel math.pi /180.0 xvel velocity cos(theta) xvel vel math.cos(theta) yvel vel math.sin(theta) whi1 e ypos>=0.0:#该条件允许h0=0.0 更新 print"Distance:号0.1 f meters."号(xpos) 8
8