„Számítógépes grafika házi feladat tutorial” változatai közötti eltérés

Rohamcsiga (vitalap | szerkesztései)
2d rajzolás részt újraírtam.
Rohamcsiga (vitalap | szerkesztései)
103. sor: 103. sor:
#define CIRCLE_RESOLUTION 32
#define CIRCLE_RESOLUTION 32


  // Piros kor, a kepernyo bal oldalan
// Piros kor, a kepernyo bal oldalan
  glBegin(GL_TRIANGLE_FAN); {
glBegin(GL_TRIANGLE_FAN); {
    float radius = 0.25f, center_x = -0.5f, center_y = 0.4f;
  float radius = 0.25f, center_x = -0.5f, center_y = 0.4f;


    glColor3f(1.0f, 0.0f, 0.0f);
  glColor3f(1.0f, 0.0f, 0.0f);
    glVertex2f(center_x, center_y);
  glVertex2f(center_x, center_y);


    for(int i = 0; i <= CIRCLE_RESOLUTION; i++) {
  for(int i = 0; i <= CIRCLE_RESOLUTION; i++) {
      float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
    float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
      // Itt a kor paramtetrikus alakjat hasznaljuk: x = x0 + r*cos(t), y = y0 + r * sin(t)
    // Itt a kor paramtetrikus alakjat hasznaljuk: x = x0 + r*cos(t), y = y0 + r * sin(t)
      glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
    glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
    }
  }
  } glEnd();
} glEnd();


  // Szinatmenetes kor, a kepernyo jobb oldalan
// Szinatmenetes kor, a kepernyo jobb oldalan
  glBegin(GL_TRIANGLE_FAN); {
glBegin(GL_TRIANGLE_FAN); {
    float radius = 0.25f, center_x = 0.5f, center_y = 0.4f;
  float radius = 0.25f, center_x = 0.5f, center_y = 0.4f;


    glColor3f(0.0f, 1.0f, 1.0f);
  glColor3f(0.0f, 1.0f, 1.0f);
    glVertex2f(center_x, center_y);
  glVertex2f(center_x, center_y);
   
 
    for(int i = 0; i <= CIRCLE_RESOLUTION; i++) {
  for(int i = 0; i <= CIRCLE_RESOLUTION; i++) {
      float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
    float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
      glColor3f(0.0f, 0.5f + 0.5f*cos(angle), 0.5f + 0.5f*sin(angle));
    glColor3f(0.0f, 0.5f + 0.5f*cos(angle), 0.5f + 0.5f*sin(angle));
      glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
    glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
    }
  }
  } glEnd();
} glEnd();


  // Felkoriv
// Felkoriv
  glBegin(GL_LINE_STRIP); {
glBegin(GL_LINE_STRIP); {
    float radius = 0.75f, center_x = 0.0f, center_y = 0.0f;
  float radius = 0.75f, center_x = 0.0f, center_y = 0.0f;


    glColor3f(1.0f, 1.0f, 1.0f);
  glColor3f(1.0f, 1.0f, 1.0f);
   
 
    for(int i = CIRCLE_RESOLUTION/2; i <= CIRCLE_RESOLUTION; i++) {
  for(int i = CIRCLE_RESOLUTION/2; i <= CIRCLE_RESOLUTION; i++) {
      float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
    float angle = float(i) / CIRCLE_RESOLUTION * 2.0f * M_PI;
      glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
    glVertex2f(center_x + radius*cos(angle), center_y + radius*sin(angle));
    }
  }
  } glEnd();
} glEnd();
</pre>
</pre>