实现用棋盘图案填充矩形

// 图形学实验一.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include"gl/glut.h"
static GLsizei iMode =0;
void Initial(void)
{
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glMatrixMode(GL_PROJECTION);
    gluOrtho2D(0.0, 200.0, 0.0, 150.0);
}

void Display(void)
{
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(0.0f, 0.0f, 0.0f);
        if (iMode == 1)
        {
            glRectf(50.0f, 100.0f, 150.0f, 50.0f);
        }
        else if(iMode==2){
            GLubyte fly[] =
            { 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
            };
            glEnable(GL_POLYGON_STIPPLE);
            glPolygonStipple(fly);
            glRectf(50.0f, 100.0f, 150.0f, 50.0f);
        }
        glutSwapBuffers();//交换命令缓冲区
}
void ProcessMenu(int value)
{
    iMode = value;
    glutPostRedisplay();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);//使用双缓存及RGB模型
    glutInitWindowSize(400, 300);//指定窗口的大小
    glutInitWindowPosition(100, 100);//指定窗口在屏幕上的位置
    glutCreateWindow("用棋盘图形填充矩形");

    glutCreateMenu(ProcessMenu);
    glutAddMenuEntry("不填充矩形 ", 1);
    glutAddMenuEntry("填充矩形", 2);
    glutAttachMenu(GLUT_RIGHT_BUTTON);

    glutDisplayFunc(Display);
    Initial();
    glutMainLoop();//启动主GLUT时间处理循环
    return 0;
}

时间: 2024-10-10 02:52:30

实现用棋盘图案填充矩形的相关文章

SVG图案

前面的话 给SVG元素应用填充和描边,除了使用纯色和渐变外,还可以使用图案.本文将详细介绍SVG图案 概述 <pattern>可以实现重复的效果,在canvas中被翻译为模式,而在SVG中被翻译为图案或笔刷 SVG图案一般用于SVG图形对象的填充fill或描边stroke.这个图形可以是一个SVG元素,也可以是位图图像,通过<pattern>元素在x轴或y轴方向以固定的间隔平铺. 在pattern元素内部可以包含任何之前包含过的其它基本形状,并且每个形状都可以使用任何样式样式化,包

基于OpenCV做“三维重建”(1)--找到并绘制棋盘

<OpenCV计算机视觉编程攻略(第3版)>这套书已经出到第3版了,如果你非要我说这本书有多好,我说不出来:只是很多我第一手的例子都是来源于这本书的-相比较OpenCV官方提供的代码,这本书的例子提供了更好的帮助.所以说这里我还将继续这个工作,将来我自己出书的时候这种模式也是可选的.      这里我要做的是第11章,关于3维重建的相关内容.[读书,做例子,多么轻松的学生岁月--] 例子11.2.1 获得图片的角点并且绘制出来. // GOCVHelper.cpp : 定义控制台应用程序的入口

相机标定原理介绍(二)

所有的相机标定方法,本质都是在求取内参和外参中所含的参数. 基于3D标定物的标定方法 使用基于3D标定物进行相机标定,是一种传统且常见的相机标定法.计算机视觉中,经典的3D标定物,棋盘方形格图案,并且提供其中角点的精确坐标. 主要流程 这一类标定法,主要包括四个步骤: 检测每张图片中的棋盘图案的角点: 通过使用线性最小二乘法估算相机投影矩阵P: 根据P矩阵就解内参矩阵K和外参矩阵R,t; 通过非线性优化,提高K,R,t矩阵的精度. 除了上述的流程,还有另外一种做法是先通过非线性优化改善相机投影矩

transitions

使用的对象必须是MovieClip类型或者其子类实例 属性 direction:Number  Tween实例的缓动方向,Transition.IN(数值0)指出现时的动画:Transition.OUT(数值1)指消失时的动画. duration:Number Tween实例的时间长度 easing:Function  动画的补间效果 使用方法: import fl.transitions.easing.*;import fl.transitions.*; var trans_obj:Objec

计算机专业考研相关联系

1.10 将下列项目分为硬件和软件:a)CPUL)C++编译器c)ALUd)C++预处理器e)输入单元f)编译程序1.11 为什么要用机器无关语言而不是用机器相关语言编程?为什么某些程序更适合用机器相关语言编程?1.12填空:a)计算机的哪个逻辑单元从计算机外部接收计算机使用的信息?——.b)指示计算机解决特定问题的过程称为——.c)哪种计算机语言用机器语言指令的英文缩写?——.d)计算机的哪个逻辑单元将计算机处理过的信息发送到各个设备,并在计算机外部使用?——.e)计要机的哪个逻辑单元保存信息

Java Applet 基础

Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程序. 如下所示是独立的 Java 应用程序和 applet 程序之间重要的不同: Java 中 Applet 类继承了 java.applet.Applet 类. Applet 类没有定义 main(),所以一个 Applet 程序不会调用 main() 方法. Applet 被设计为嵌入在一

20180907-Java Applet基础

Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独立的Java应用程序和applet程序之间重要的不同: 1.Java中applet类继承了 java.applet.Applet类 2.Applet类没有定义main(),所以一个 Applet程序不会调用main()方法, 3.Applets被设计为嵌入在一个HTML页面. 4.当用户浏览包含Ap

Cesium官方教程12--材质(Fabric)

原文地址:https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric介绍Fabric 是Cesium中基于JSON格式来描述materials的机制.材质描述多边形.折线.椭球等对象的外观特征.材质可以简单的是覆盖一张图片,或者是条纹或者棋盘图案.使用Fabric 和GLSL,可以从零开始写脚本新建材质,也可以从现有的材质中派生.比如潮湿碎裂的砖块可以使用程序生成的纹理.凹凸贴图和反射贴图来组合.对象通过material 属性来支持材质

Java - 33 Java Applet基础

Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独立的Java应用程序和applet程序之间重要的不同: Java中applet类继承了 java.applet.Applet类 Applet类没有定义main(),所以一个 Applet程序不会调用main()方法, Applets被设计为嵌入在一个HTML页面. 当用户浏览包含Applet的HTM