主题:那为大哥会做炮弹问题 啊回的话就请给我个真确的答案再次谢谢了!
loujinquan
[专家分:90] 发布于 2005-06-29 21:13:00
[em2]
我听老师说了炮弹问题比较难
我自己看了一下
的确如此
不会做
请那位大哥指教指教
回复列表 (共1个回复)
沙发
飞鸟12 [专家分:2830] 发布于 2005-06-30 13:36:00
程序只是一个初步的方案,没有做太多的修饰。
若你有时间 也可以润色一下
CONST LEFT = -10, RIGHT = 10, TOP = 10, BUTTOM = -10
CONST PI = 3.14159, TODEG = 180 / PI
REM 画出背景坐标
SCREEN 12
VIEW (50, 50)-(450, 450), , 12
WINDOW (LEFT, BUTTOM)-(RIGHT, TOP)
COLOR 8
LINE (LEFT, 0)-(RIGHT, 0)
LINE (0, TOP)-(0, BUTTOM)
FOR i = LEFT TO RIGHT
PSET (i, 0): DRAW "u5"
NEXT i
FOR i = BUTTOM TO TOP
PSET (0, i): DRAW "r5"
NEXT i
REM 游戏开始
COLOR 12
LOCATE 2, 20: PRINT "Press any key to START!"
DO
key$ = INKEY$
LOOP UNTIL key$ <> ""
LOCATE 2, 20: PRINT "Make fan of youself ^o^"
tim = TIMER + 1
WHILE TIMER < tim: WEND
REM 动画效果
FOR x = LEFT TO RIGHT STEP .1
y = -x ^ 2 + 7 '运动轨迹方程
IF BUTTOM < y AND y < TOP THEN
jiao = INT(ATN(-2 * x) * TODEG) MOD 360
PSET (x, y), 10 '画炮弹
DRAW "ta" + STR$(jiao) + "c7nl10r10nh3g3ta0"
tim = TIMER + .05 '延时
WHILE TIMER < tim
key$ = INKEY$
IF key$ <> "" THEN EXIT FOR
WEND
PSET (x, y), 10 '擦炮弹
DRAW "ta" + STR$(jiao) + "c0nl10r10nh3g3ta0"
END IF
NEXT x
END
程序说明
y = f(x) '运动轨迹方程
jiao = INT(ATN(f'(x)) * TODEG) MOD 360
f'(x)为f(x)的导函数
比如 f(x) = 5 * sin(x) , f'(x) = 5 * cos(x)
又比如 f(x) = 5 * cos(x) , f'(x) = -5 * sin(x)
替换到程序中就可以看到效果了
我来回复