【问题标题】:Error: expected primary-expression before '/' token错误:“/”标记之前的预期主表达式
【发布时间】:2018-05-31 14:05:58
【问题描述】:

我对此有疑问:

"expected primary-expression before ‘/’ token"

请帮帮我 谢谢

错误显示在:angle = i * 2.0f * PI / numSegments;

这是我的代码:

void display() {
    glClear(GL_COLOR_BUFFER_BIT);  // Clear colour buffer
    glMatrixMode(GL_MODELVIEW);     // To operateon the model-view matrix
    glLoadIdentity();               // Reset model-view matrix

    glTranslatef(ballX, ballY, 0.0f);   //translate to (xPos, yPos)
    // use triangular segments to form a circle
    glBegin(GL_TRIANGLE_FAN);
    glColor3f(0.0f, 0.0f, 1.0f);    // Biru
    glVertex2f(0.0f, 0.0f);         // center of circle
    int numSegments = 100;
    GLfloat angle;
    for (int i = 0; i <= numSegments; i++) {    // last vertex same as first vertex
        angle = i * 2.0f * PI / numSegments;
        glVertex2f(cos(angle) * ballRadius, sin(angle) * ballRadius);
    }
    glEnd();

    glutSwapBuffers(); // Swap front and back buffers (of double buffered mode)

    // animation control - compute the location for the next refresh
    ballX += xSpeed;
    ballY += ySpeed;
    //Check if the ball exceeds the edges
    if (ballX > ballXMax) {
        ballX = ballXMax;
        xSpeed = -xSpeed;
    }
    else if(ballX < ballXMin) {
        ballX = ballXMin;
        xSpeed = -xSpeed;
    }
    if (ballY > ballYMax) {
        ballY = ballYMax;
        ySpeed = -ySpeed;
    }
    else if (ballY < ballYMin) {
        ballY = ballYMin;
        ySpeed = -ySpeed;
    }
}

【问题讨论】:

  • PI 是什么?它似乎没有在任何地方声明。
  • 标准 C 中没有 PI。有关可能的解决方案,请参阅 this

标签: c++ c function compiler-errors procedure


【解决方案1】:

令人发指的是,C 和 C++ 标准都没有定义 pi 的值,而且您得到的编译器错误与未定义 PI 完全一致。

如果您没有在 C++ 中使用 Boost,最简单的做法是自己定义 PI,保留大量小数位,以防止您的类型在未来发生精度变化。在 POSIX 中,您可以使用 M_PI,但您的代码不是严格可移植的。

【讨论】:

    猜你喜欢
    • 2013-01-13
    • 2017-09-24
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多