注册 登录
编程论坛 C语言论坛

请高手讲解一下!谢谢

huaheshang 发布于 2019-04-28 14:09, 2319 次点击
#include <conio.h>
#include <math.h>
#include <graphics.h>
main()
{
    int y = 200;
    int i, h;
    float m;
    int gdriver, gmode;
    gdriver = DETECT;
    initgraph(&gdriver, &gmode, "");       /*图形方式初始化*/
    setviewport(50, 50, 450, 450, 1);       /*设定图形窗口*/
    setcolor(14);           /*设置绘图颜色为黄色*/
    rectangle(0, 0, 400, 400);        /*画矩形框*/
    line(200, 0, 200, 400);         /*画纵坐标轴*/
    line(0, 200, 400, 200);         /*画横坐标轴*/
    for (i = 0; i < 400; i++)
    {
        m = 100 * sin(i / 31.83);        /*求每个像素对应的sin值*/
        h = y - (int)m;         /*求出每个像素点的相对坐标轴纵坐标的位置*/
        putpixel(i, h, 15);         /*画点*/
        delay(10000);
    }
    getch();
    closegraph();          /*退出图形状态*/
}
请教一下m = 100 * sin(i / 31.83);     的31.83的意思
      
8 回复
#2
rjsp2019-04-28 14:35
100/pi

BTW:别搞<graphics.h>这些没人用的玩意儿
#3
huaheshang2019-04-28 14:45
m = 100 * sin(i / 31.83)能帮忙详解一下吗,搞不清楚很不好受呀!拜托了
#4
wp2319572019-04-28 14:52
回复 3楼 huaheshang
人都说与时俱进吗   一楼的代码 老掉牙了   一般电脑也运行不了

除非装虚拟机,安装MSDOS 再安装tc2.0 然后的然后 就是学了啥用没有  请问你还要继续学吗
#5
huaheshang2019-04-28 14:57
即使不学,我也想知道这行代码的意义,作用,根据什么公式推倒的!谢谢
#6
huaheshang2019-04-28 15:11
问一下,现在学什么好呢


#7
rjsp2019-04-28 15:20
不是已经说了31.83 是 100/pi,还有哪里不懂嘛?
sin(i / 31.83) 就是 sin( i/100 * 3.14159265358979323846 ),i是从0到400,那么正好画出正弦波的一个周期[0,2π)
100 * sin(i / 31.83) 只是将Y轴拉长100倍,使你看得清楚。
#8
huaheshang2019-04-28 15:27
谢谢
#9
jinxiao662019-12-22 12:07
对于新手来讲,这些内容还是需要人来解惑的。为版主点赞!
1