天地之灵学习小组
我们学习小组的OpenGL学习笔记 大家一定要互相折磨呀~~
posts - 150,  comments - 156,  trackbacks - 0
今天成都,排名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.0f0.0f1.0f );
    glEnable(GL_POLYGON_STIPPLE);
    glPolygonStipple(Mask);
    glRectf(
160240184264 );  // 在左下方绘制一个有镂空效果的正方形
    glDisable(GL_POLYGON_STIPPLE);
    glRectf(
320120480240);    // 在右上方绘制一个无镂空效果的正方形

/*    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( 
100100 );
    glutInitWindowSize( 
640480 );
    glutCreateWindow( 
"Polygon by PureMilk" );
    glutDisplayFunc( myDisplay );
    gluOrtho2D( 
06404800 );
    glutMainLoop();

    
return 0;
}

把它当作镂空图drawPolygon也不错,不过下面错位很严重,不知是什么原因?

囧,太小貌似看不清,就是嘴下面那块儿大部分像素点是错的。
恩,看来glColor3f(0.0f,0.0f,1.0f);这个值还需要调亮一下,太暗对比度不够。
我要好好休息一下,最近几天身体透支。下周估计也闲不下来,无意义的瞎忙啊。我要好好取舍一下,我要自私一点,我要一次只做一件事,做我想做的事。

FeedBack:
# re: 10月19日_累,让俺小休息一下吧_By PureMilk
2008-10-19 22:23 | 天地之灵
if ( x == 23 )
怀疑你的循环周期写错了。
++x以后应该是x == 24的时候吧?
也可以这么写:
++x;
y+= x/24;
x%= 24;
这样就保证不错啦。  回复  更多评论
  
# re: 10月19日_累,让俺小休息一下吧_By PureMilk
2008-10-20 12:45 | 肖赫_王婷婷_王冠_郑燚_孙婷
@天地之灵
噢对哦,我傻了,明明昨天比赛的时候还有个高精度取模1000007的我就是下面哪种写法,自己画图的时候反而用了蠢方法。
刚调试了一下,改成24也是乱点,下面的写法也是乱点。我的图片是20*20的二值图,真的是8位一对齐吗?  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(6)

随笔分类(149)

随笔档案(150)

同道中人

搜索

  •  

积分与排名

  • 积分 - 43825
  • 排名 - 486

最新随笔

最新评论

阅读排行榜

评论排行榜