zoukankan      html  css  js  c++  java
  • 中点算法之y=x^2/16

     1 /*************************************************************
     2      pb-图形学题3
     3      中点算法之y=x^2/16;
     4      
     5 *************************************************************/
     6 
     7 
     8 #include <GL/glut.h>
     9 #include<cstdio>
    10 #include<cmath>
    11 
    12 
    13 void init()
    14 {
    15     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);                 //什么单缓存的东西,现在不懂什么意思,就当通用条件
    16     glutInitWindowPosition(0, 0);                                //图片出现的位置
    17     glutInitWindowSize(400, 300);                                //图片的长和宽
    18     glutCreateWindow("pb-图形学题1");                            //图片的名字
    19 
    20     glClearColor(0.0, 0.0, 0.0, 0.0);
    21     glMatrixMode(GL_PROJECTION);
    22     gluOrtho2D(-100, 100, -10, 200); 
    23 
    24     glRectf(-0.5f, -0.5f, 0.5f, 0.5f); 
    25     glClear(GL_COLOR_BUFFER_BIT);
    26     glColor3f(1.0, 0.0, 0.0);                                    //线的颜色
    27 }
    28 
    29 
    30 void setPixel (GLint x,GLint y,GLint nx,GLint ny)               //描点函数,表示从x,y到nx,ny的矩形全部涂色
    31 {
    32     glBegin(GL_LINES);
    33        glVertex2i(x, y);
    34        glVertex2i(nx,ny);
    35     glEnd();
    36 }
    37 
    38 void myDisplay()
    39 {
    40     int d=-7;
    41     int x1=0,x2=0;
    42     int y1=0,y2=0;
    43     while (x1<=8)
    44     {
    45         x2=x1+1;
    46         if (d<=0)
    47         {
    48             d+=2*x2+1;
    49             y2=y1;
    50         }
    51         else
    52         {
    53             d+=2*x2-15;
    54             y2=y1+1;
    55         }
    56         setPixel(x1,y1,x2,y2);
    57         setPixel(-x1,y1,-x2,y2);
    58         y1=y2;
    59         x1=x2;
    60     }
    61     d=8;
    62     while (y1<=100)
    63     {
    64         y2=y1+1;
    65         if (d>0)
    66         {
    67             x2=x1+1;
    68             d+=16-(x1*x1-(x1-1)*(x1-1)+1);
    69         }
    70         else
    71         {
    72             x2=x1;
    73             d+=16;
    74         }
    75         setPixel(x1,y1,x2,y2);
    76         setPixel(-x1,y1,-x2,y2);
    77         y1=y2;
    78         x1=x2;
    79     }
    80     glFlush();
    81 }
    82 
    83  int main(int argc, char *argv[])
    84  {
    85      glutInit(&argc, argv);
    86      init();                                                     //初始化数据
    87      glutDisplayFunc(&myDisplay);                                //调用函数                    
    88      glutMainLoop();                                             //开始程序
    89      return 0; 
    90  }
  • 相关阅读:
    mysql root密码重置
    fetch跨域问题
    HTML5触摸事件(touchstart、touchmove和touchend)
    react-router-dom
    清理网站缓存
    从零开始学java (标识符,关键字,基本数据类型)
    从零开始学java ( 初始java)
    入职一年心得
    guava 函数式编程三兄弟
    java读取各种类型文件
  • 原文地址:https://www.cnblogs.com/pblr/p/5392474.html
Copyright © 2011-2022 走看看