BlueBear icon

sphere_draw.c

BlueBear | PRO | 12/06/14 10:29:04 AM UTC | 0 ⭐ | 525 👁️ | Never ⏰ | []
C |

1.51 KB

|

None

|

0 👍

/

0 👎

void drawsphere()
{
  #define PI 3.14159265358979323846f
  int width = 32;
  int height = 16;
 
  float theta, phi, *dat;
  int i, j, t, ntri, nvec, *idx;
 
  nvec = (height-2)* width+2;
  ntri = (height-2)*(width-1)*2;
 
  dat = (float*) malloc( nvec * 3*sizeof(float) );
  idx =   (int*) malloc( ntri * 3*sizeof(int)   );
 
  for( t=0, j=1; j<height-1; j++ )
  for(      i=0; i<width; i++ )
  {
    theta = float(j)/(height-1) * PI;
    phi   = float(i)/(width-1 ) * PI*2;
    dat[t++] =  sinf(theta) * cosf(phi);
    dat[t++] =  cosf(theta);
    dat[t++] = -sinf(theta) * sinf(phi);
  }
  dat[t++]=0; dat[t++]= 1; dat[t++]=0;
  dat[t++]=0; dat[t++]=-1; dat[t++]=0;
 
  for( t=0, j=0; j<height-3; j++ )
  for(      i=0; i<width-1; i++ )
  {
    idx[t++] = (j  )*width + i  ;
    idx[t++] = (j+1)*width + i+1;
    idx[t++] = (j  )*width + i+1;
    idx[t++] = (j  )*width + i  ;
    idx[t++] = (j+1)*width + i  ;
    idx[t++] = (j+1)*width + i+1;
  }
  for( i=0; i<width-1; i++ )
  {
    idx[t++] = (height-2)*width;
    idx[t++] = i;
    idx[t++] = i+1;
    idx[t++] = (height-2)*width+1;
    idx[t++] = (height-3)*width + i+1;
    idx[t++] = (height-3)*width + i;
  }
 
  glEnableClientState(GL_VERTEX_ARRAY);
  glEnableClientState(GL_NORMAL_ARRAY);
  glVertexPointer(3,GL_FLOAT,0,dat);
  glNormalPointer(GL_FLOAT,0,dat);
  glDrawElements(GL_TRIANGLES, ntri*3, GL_UNSIGNED_INT, idx );
  glDisableClientState(GL_VERTEX_ARRAY);
  glDisableClientState(GL_NORMAL_ARRAY);
 
  free(idx);
  free(dat);
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  • Syutrsz icon
    03/31/26 10:18:48 PM UTC
    text |

    0 B

    |

    0 👍

    /

    0 👎

    Best t33n active cpx link daily updates!
     Copy and paste the link in a new browser tab and then hit enter!
     https://crazyporn.@xxx/members/157354/?asgtbndr=1&play=true&spon=adworld&zone=400
     Remove the @ 
  • Zyubi icon
    04/05/26 02:26:51 AM UTC
    text |

    0 B

    |

    0 👍

    /

    0 👎

    Best t33n active cpx link daily updates!
     Copy and paste the link in a new browser tab and then hit enter!
     https://crazyporn.xxx/members/157354/?asgtbndr=1&play=true&spon=adworld&zone=400