主题:画出对数函数y=lgx的图象!知道,请回帖!!谢谢!!!
xcm22
[专家分:20] 发布于 2005-11-30 10:25:00
画出对数函数y=lgx的图象!知道,请回帖!!谢谢!!!
回复列表 (共4个回复)
沙发
飞鸟12 [专家分:2830] 发布于 2005-11-30 13:20: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)
板凳
xcm22 [专家分:20] 发布于 2005-11-30 18:50:00
谢谢 您!
能给出具体的程序么?
我是一个初学者!不是太懂!!谢谢……
3 楼
moz [专家分:37620] 发布于 2005-11-30 22:35:00
SCREEN 12
LOCATE 16, 1
PRINT "x";
LOCATE 1, 42
PRINT "y";
FOR i = -2 TO 2
LOCATE 16, i * 12 + 39
PRINT i;
LOCATE 16-i*6, 39
PRINT i;
LINE (i * 96 + 320, 239)-(i * 96 + 320, 237)
LINE (321, i * 96 + 239)-(323, i * 96 + 239)
NEXT
LINE (0, 240)-(639, 240)
LINE (636, 237)-(639, 240)
LINE (636, 243)-(639, 240)
LINE (320, 0)-(320, 479)
LINE (317, 3)-(320, 0)
LINE (323, 3)-(320, 0)
[color=FF00FF]FOR i = 320.1 TO 639 step 0.1 [/color]
PSET (i, 240-[color=FF00FF]log[/color]((i - 320) / 96) * 96), 4
NEXT
本来根据这个程序改两行就可以了
但是为了更好的表现图形,我再改一下.
4 楼
moz [专家分:37620] 发布于 2005-11-30 23:05:00
SCREEN 12
LOCATE 16, 79
PRINT "x";
LOCATE 16, 2
PRINT "0";
LOCATE 16, 6
PRINT 5;
LOCATE 16, 12
PRINT 10;
LOCATE 1, 3
PRINT "y";
LOCATE 6, 2
PRINT "15";
LOCATE 11, 2
PRINT "7";
LOCATE 18, 2
PRINT "-4";
LOCATE 21, 2
PRINT "-9";
FOR i = -23 TO 24
LINE (233 + i * 10, 239)-(233 + i * 10, 237) 'x
LINE (3, 240 - i * 10)-(5, 240 - i * 10) 'y
NEXT
LINE (0, 240)-(639, 240) 'x
LINE (636, 237)-(639, 240)
LINE (636, 243)-(639, 240)
LINE (3, 0)-(3, 479) 'y
LINE (0, 3)-(3, 0)
LINE (6, 3)-(3, 0)
FOR i = 4 TO 639
PSET (i, 240 - LOG((i - 3) / 10) * 10), 4
NEXT
我来回复