回 帖 发 新 帖 刷新版面

主题:画出对数函数y=lgx的图象!知道,请回帖!!谢谢!!!

画出对数函数y=lgx的图象!知道,请回帖!!谢谢!!!

回复列表 (共4个回复)

沙发

以前做的火箭 改改就可以画函数了
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)

板凳

谢谢 您!
能给出具体的程序么?
我是一个初学者!不是太懂!!谢谢……

3 楼

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 楼

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册