函数无法按预期工作

函数无法按预期工作

我之前有一个类似的问题,但是现在正在发生的事情是我正在尝试使用GNU libplot绘制五个圆,等待几秒钟,然后使窗口变黑。发生的情况是屏幕开始黑屏,等待指定的时间,然后绘制。如何使用睡眠来获得所需的输出?我将省去代码中将值分配给结构的时间

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <plot.h>
#include <unistd.h>

struct body {
char color[10];
char size[4];
char mass[10];
char xpos[10];
char ypos[10];
};

int main() {

    struct body sun;
    struct body mercury;
    struct body venus;
    struct body earth;
    struct body mars;

    plPlotter *plotter;
    plPlotterParams *plotterParams;

    plotterParams = pl_newplparams();
    pl_setplparam(plotterParams, "BITMAPSIZE", "750x750");
    pl_setplparam(plotterParams, "USE_DOUBLE_BUFFERING", "no");
    pl_setplparam(plotterParams, "BG_COLOR", "black");

    if ((plotter = pl_newpl_r("X", stdin, stdout, stderr, plotterParams)) == NULL) {
        fprint(stderr, "Couldn't create Plotter\n");
        exit(1);
    } else if(pl_openpl_r(plotter) < 0) {
         fprintf(stderr, "Couldn't open Xwindows Plotter\n");
         exit(1);
    }

    pl_fspace_r(plotter, -2500, -2500, 2500, 2500);

    pl_pentype_r(plotter, 1);
    pl_filltype_r(plotter, 1);

    pl_pencolorname_r(plotter, "black");

    /* draw the sun */
    pl_fillcolorname_r(plotter, sun.color);
    pl_fcircle_r(plotter, atof(sun.size), atof(sun.ypos), atof(sun.size));

    /* I do this same thing 4 more times but with
     * mercury, venus, earth, and mars
    */

    sleep(5); /* try to wait 5 seconds then sleep */

    /* close and cleanup */
    if (pl_close_pl_r(plotter) < 0) {
        fprintf(stderr, "Couldnt delete plotter\n");
    }
    else if (pl_deletepl_r(plotter) < 0) {
        fprintf(stderr, "Couldnt delete plotter\n");
    }

    return 0;
}

最佳答案

您在哪里:

plotterParams = pl_newplparams();
pl_setplparam(plotterParams, "BITMAPSIZE", "750x750");
pl_setplparam(plotterParams, "USE_DOUBLE_BUFFERING", "no");
pl_setplparam(plotterParams, "BG_COLOR", "black");


您将“ BG_COLOR”设置为黑色。

我对这套特定的工具了解不多,但是好像您从一开始就将背景设置为黑色。

在这种情况下,您要做的是先将其设置为白色(或其他颜色),然后在完成后将其更改为黑色。希望这能使您走上正确的道路。

关于c - sleep()函数无法按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22239998/

10-10 14:02