今天成都,排名98,估計去不了。01居然暴力過了,俺的天啊,O(n^2*lgn)的復雜度啊。09拍了兩百多行的代碼,一個頭賬了兩個大,無限WA。強哥更甚,竟然拍了四百多行,無限WA+TLE。讓我的ICPC在累和心不在焉中悄無聲息地落幕吧。合肥干脆也不要去了,去現場賽又有什么意義呢,還不是被虐么。
今天我想發段與DrMario無關的代碼,因為前兩天一發一陀代碼,都沒什么人評論,反應好像不太好哈。今天發個短小的實現一個具體的小功能的,順便向各位牛們請教一下問題出在哪兒?
#include <stdio.h>
#include <stdlib.h>
#include <gl/glut.h>
void setPixel( int x, int y )
{
glBegin( GL_POINTS );
glVertex2i( x, y );
glEnd();
}
void myDisplay(void)
{
static GLubyte Mask[72]; //我猜它8位一對齊?
FILE *fp;
fp = fopen("worm.bmp", "rb");
if( !fp ) //如果沒讀取成功
exit(0);
if( fseek(fp, -(int)sizeof(Mask), SEEK_END) )//這是什么?
exit(0);
if( !fread(Mask, sizeof(Mask), 1, fp) )
exit(0);
fclose(fp);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f( 0.0f, 0.0f, 1.0f );
glEnable(GL_POLYGON_STIPPLE);
glPolygonStipple(Mask);
glRectf(160, 240, 184, 264 ); // 在左下方繪制一個有鏤空效果的正方形
glDisable(GL_POLYGON_STIPPLE);
glRectf(320, 120, 480, 240); // 在右上方繪制一個無鏤空效果的正方形
/* int x = 0, y = 0; //我本來想,讀進來就可以這樣搞了嘛,結果一團亂點,郁悶。
for ( int i = 0; i < 72; ++i )
{
for ( int j = 0; j < 8; ++j )
{
if ( (Mask[i]&(1<<j) ) == 0 )
{
setPixel( 50+x, 50+y );
}
++x;
if ( x == 23 )
{
x = 0;
++y;
}
}
}*/
glFlush();
}
int main( int argc, char *argv[])
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE );
glutInitWindowPosition( 100, 100 );
glutInitWindowSize( 640, 480 );
glutCreateWindow( "Polygon by PureMilk" );
glutDisplayFunc( myDisplay );
gluOrtho2D( 0, 640, 480, 0 );
glutMainLoop();
return 0;
}

把它當作鏤空圖drawPolygon也不錯,不過下面錯位很嚴重,不知是什么原因?

囧,太小貌似看不清,就是嘴下面那塊兒大部分像素點是錯的。
恩,看來glColor3f(0.0f,0.0f,1.0f);這個值還需要調亮一下,太暗對比度不夠。
我要好好休息一下,最近幾天身體透支。下周估計也閑不下來,無意義的瞎忙啊。我要好好取舍一下,我要自私一點,我要一次只做一件事,做我想做的事。