细分和边界

代码如下:

#include <windows.h>
//#include <GLUT/glut.h>
#include <GL/glut.h>
#include <math.h>
#include <iostream>
using namespace std;

#define GL_PI 3.1415f

void RenderScene()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    GLboolean bEdgeflag;
    glBegin(GL_TRIANGLES);
        glEdgeFlag(bEdgeflag);
        glVertex2f(-20.0f,0.0f);
        glEdgeFlag(true);
        glVertex2f(20.0f,0.0f);
        glVertex2f(0.0f,40.0f);

        glVertex2f(-20.0f,0.0f);
        glVertex2f(-60.0f,-20.0f);
        glEdgeFlag(bEdgeflag);
        glVertex2f(-20.0f,-40.0f);
        glEdgeFlag(true);

        glVertex2f(-20.0f,-40.0f);
        glVertex2f(0.0f,-80.0f);
        glEdgeFlag(bEdgeflag);
        glVertex2f(20.0f,-40.0f);
        glEdgeFlag(true);

        glVertex2f(20.0f,-40.0f);
        glVertex2f(60.0f,-20.0f);
        glEdgeFlag(bEdgeflag);
        glVertex2f(20.0f,0.0f);
        glEdgeFlag(true);

        glEdgeFlag(bEdgeflag);
        glVertex2f(-20.0f,0.0f);
        glVertex2f(-20.0f,-40.0f);
        glVertex2f(20.0f,0.0f);

        glVertex2f(-20.0f,-40.0f);
        glVertex2f(20.0f,-40.0f);
        glVertex2f(20.0f,0.0f);
        glEdgeFlag(true);

    glEnd();

    glutSwapBuffers();

}

void ChangeSize(GLsizei w,GLsizei h)
{
    if(h==0)
        h = 1;

    GLfloat aspectRatio = (GLfloat)w/(GLfloat)h;

    glViewport(0,0,w,h);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    if(w<=h)
        glOrtho(-100,100,-100/aspectRatio,100/aspectRatio,100.0,-100.0);
    else
        glOrtho(-100*aspectRatio,100*aspectRatio,-100,100,100.0,-100.0);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

}

void SetupRC()
{
    glClearColor(0.0f,0.0f,0.0f,1.0f);
    glColor3f(1.0f,0.0f,0.0f);
}

int main(int argc, char *argv[])
{
   glutInit(&argc,argv);
   glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
   glutInitWindowSize(800,600);
   glutCreateWindow("Simple");

   glutDisplayFunc(RenderScene);
   glutReshapeFunc(ChangeSize);

   SetupRC();
   glutMainLoop();
   return 0;
}
时间: 2024-10-13 22:45:13

细分和边界的相关文章

绘制图形与3D增强技巧(五)----多边形图元的使用及其他

1.注意多边形图元中的多边形只能是平面的,而且必须为凸多边形,且多边形的边不能弯曲 2.细分和边界,可以人为设置边界边和非边界边 glEdgeFlag(true)//接下来所有点均为边界边起点 glEdgeFlag(false)//接下来所有点均为非边界边起点 3.操纵深度缓冲区 glutinitdispalymode(GLUT_DEPTH);//开辟深度缓冲区 glenable(GL_DEPTH_TEST);//启用深度测试:即使未启用,深度值仍然写入深度缓冲区,只不过不进行测试 glDept

数据挖掘的含义、应用、常见任务等知识点汇总

数据挖掘这一术语所指的范围非常广泛,从即席式查询.基于规则的通知或透视图分析,到政府的监听计划.在本书中,数据挖掘是一个过程,使用自动方法分析数据,以便找到隐藏的模式.提到这种数据挖掘时,常常使用其他术语,例如计算机学习,数据库中的知识发现或者预测分析. 数据挖掘的主要目的是从已有数据中提炼知识,这就提高了已有数据的内在价值,并且使数据成为有用的东西. 数据挖掘将算法(比如决策树,聚类,关联,时序算法等)应用到某一数据集,然后分析该数据集的内容.这种分析能挖掘出模式,这些模式含有有价值的信息.根

在3D空间中绘制四边形

在3D空间中绘制四边形 四边形 GL_QUADS OpenGL的GL_QUADS图元用于绘制四边形,它根据每四个顶点绘制一个四边形. 注意,在使用四边形时,必需记住一个重要规则:一个四边形的四个角必须位于同一个平面中(不存在弯曲的四边形).如图所示 四边形带 GL_QUAD_STRIP 该图元指定一个连接的四边形带.它们都保持相同方向的环绕.如图所示 通用多边形 GL_POLYGON 我们可以用它绘制任意数量的多边形.与四边形一样,多边形的所有顶点也必须位于同一平面中.如果想越过这个规则,可以采

OpenGL学习进程(10)第七课:四边形绘制与动画基础

    本节是OpenGL学习的第七个课时,下面以四边形为例介绍绘制OpenGL动画的相关知识:     (1)绘制几种不同的四边形: 1)四边形(GL_QUADS) OpenGL的GL_QUADS图元用于绘制四边形,它根据每四个顶点绘制一个四边形. 注意:在使用四边形时必需记住四边形的四个角必须位于同一个平面中(不存在弯曲的四边形). 2)四边形带(GL_QUAD_STRIP) 该图元指定一个连接的四边形带.它们都保持相同方向的环绕. 3)通用多边形GL_POLYGON 我们可以用它绘制任意数

关于3DSMAX中opensubdiv细分功能的笔记

说到建模和细分,估计用过3dsmax的同学就会心有余悸,每次添加"涡轮平滑"或者"网格平滑"之前,都会下意识的进行保存,没有为啥,就是因为太容易使软件挂掉了. 更别说在涡轮平滑过后,多出来的线让整个场景处于非常卡顿的状态,特别是打开了线框模式,完全没有继续工作的欲望.(使用丽台的土豪们请无视) 图 密麻麻的线,涡轮平滑的日常 但是随着计算机性能的进步,特别是近年来GPU技术的发展,让很多传统CPU负荷很重的任务得到了改善.对于细分平滑,使用3dsmax的小伙伴从20

重新定义工作站的“边界”

IDC的数据显示,中国专业图形处理市场在过去几年中一直保持着两位数的增长,增速高于欧美市场.但是在制造.设计.媒体.娱乐等图形处理需求集中的行业,工作站的普及率远低于国外.这也让戴尔对中国工作站市场未来的增长潜力充满信心. 产品设计以客户为中心 "工作站的设计必须从满足客户的需求出发."戴尔Precision工作站产品市场总监Patrick Kannar表示,"用户的创意很多时候只是灵光一闪.我们提供的技术和解决方案要帮助客户抓住这一创意,实现快速的产品迭代和创新,而且不能出

互联网巨头的金融边界在哪里 无直接涉及P2P_

从目前看,BAT及京东在金融领域开疆拓土,几乎涉及当前互联网金融的所有领域,背后直指打通各个环节,实现闭环,为用户提供一套完整的金融解决方案.但,携用户之优势,这些互联网巨头的金融边界在哪里? 经济观察网 记者 胡群 5月18日,京东金融全新打造的股票平台"财谜"上线.次日,蚂蚁金服副总裁韩歆毅表示,蚂蚁金服将筹备上线股权众筹平台,并将其命名为"蚂蚁达客",为创业者提供股权众筹融资服务. 然而,蚂蚁金服金融事业部总经理袁雷鸣向经济观察网表示,每个公司都会有自己的边界

CSS边框与边界

CSS边框与边界 1.CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色. 1.1.边框样式 边框样式属性指定要显示什么样的边界. border-style属性用来定义边框的样式 1.2.边框宽度 您可以通过 border-width 属性为边框指定宽度. 为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em:或者使用 3 个关键字之一,它们分别是 thin .medium(默认值) 和 thick. 注意:CSS 没有定义 3 个关键字的具体宽度,所以一个用户

图形学_多边形扫描转换_边界标志算法

边界标志算法 1. 对多边形的每一条边进行扫描转换,即对多边形边界所经过的象素作一个边界标志. 2.填充 对每条与多边形相交的扫描线,按从左到右的顺序,逐个访问该扫描线上的象素. 取一个布尔变量inside来指示当前点的状态,若点在多边形内,则inside为真.若点在多边形外,则inside为假. Inside 的初始值为假,每当当前访问象素为被打上标志的点,就把inside取反.对未打标志的点,inside不变. 1 #include "easyx.h" 2 #include &qu