|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include "mainwindow.h" #include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton,SIGNAL(clicked()),ui->centralWidget,SLOT(glTriangle()));
connect(ui->pushButton_2,SIGNAL(clicked()),ui->centralWidget,SLOT(delObject())); //I have not developed the delObject()
}
MainWindow::~MainWindow()
{
delete ui;
}
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#include "glwidget.h" #include<GL/glut.h>
#include <ui_mainwindow.h>
GLWidget::GLWidget(QWidget *parent) :
QGLWidget(parent)
{
}
void GLWidget::initializeGL()
{
//glClearColor(0.2, 0.2, 0.2, 1); // Background Color
glShadeModel(GL_SMOOTH);// Enable Smooth Shading
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);// Black Background
glClearDepth(1.0f);// Depth Buffer Setup
glEnable(GL_DEPTH_TEST);// Enables Depth Testing
glDepthFunc(GL_LEQUAL);// The Type Of Depth Testing To Do
glEnable ( GL_COLOR_MATERIAL );
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
void GLWidget::resizeGL(int weight, int height)
{
glViewport ( 0, 0, weight, height );
glMatrixMode ( GL_PROJECTION ); // Select The Projection Matrix
glLoadIdentity ( ); // Reset The Projection Matrix
if ( height==0 ) // Calculate The Aspect Ratio Of The Window
gluPerspective ( 80, ( float ) weight, 1.0, 5000.0 );
else
gluPerspective ( 80, ( float ) weight / ( float ) height, 1.0, 5000.0 );
glMatrixMode ( GL_MODELVIEW ); // Select The Model View Matrix
glLoadIdentity ( ); // Reset The Model View Matrix
}
void GLWidget::paintGL()
{
}
void GLWidget::glTriangle(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Clear Screen And Depth Buffer
glLoadIdentity();// Reset The Current Modelview Matrix
glTranslatef(-1.5f,0.0f,-6.0f);// Move Left 1.5 Units And Into The Screen 6.0
glBegin(GL_TRIANGLES);// Drawing Using Triangles
glColor3f(1.0f,0.0f,0.0f);// Set The Color To Red
glVertex3f( 0.0f, 1.0f, 0.0f);// Top
glColor3f(0.0f,1.0f,0.0f);// Set The Color To Green
glVertex3f(-1.0f,-1.0f, 0.0f);// Bottom Left
glColor3f(0.0f,0.0f,1.0f);// Set The Color To Blue
glVertex3f( 1.0f,-1.0f, 0.0f);// Bottom Right
glEnd();// Finished Drawing The Triangle
}
void GLWidget::glQuard(){
glTranslatef(3.0f,0.0f,0.0f);// Move Right 3 Units
glColor3f(0.5f,0.5f,1.0f);// Set The Color To Blue One Time Only
glBegin(GL_QUADS);// Draw A Quad
glVertex3f(-1.0f, 1.0f, 0.0f);// Top Left
glVertex3f( 1.0f, 1.0f, 0.0f);// Top Right
glVertex3f( 1.0f,-1.0f, 0.0f);// Bottom Right
glVertex3f(-1.0f,-1.0f, 0.0f);// Bottom Left
glEnd();// Done Drawing The Quad
}
|
rawModel()|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include "mainwindow.h" #include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton,SIGNAL(clicked()),ui->centralWidget,SLOT(DrawModel())); //DrawModel() can be any other name
connect(ui->pushButton_2,SIGNAL(clicked()),ui->centralWidget,SLOT(delObject())); //I have not developed the delObject()
}
MainWindow::~MainWindow()
{
delete ui;
}
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
#include "glwidget.h" #include<GL/glut.h>
#include <ui_mainwindow.h>
//Set a global
bool bFlag = false;
GLWidget::GLWidget(QWidget *parent) :
QGLWidget(parent)
{
}
void GLWidget::initializeGL()
{
//glClearColor(0.2, 0.2, 0.2, 1); // Background Color
glShadeModel(GL_SMOOTH);// Enable Smooth Shading
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);// Black Background
glClearDepth(1.0f);// Depth Buffer Setup
glEnable(GL_DEPTH_TEST);// Enables Depth Testing
glDepthFunc(GL_LEQUAL);// The Type Of Depth Testing To Do
glEnable ( GL_COLOR_MATERIAL );
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
void GLWidget::resizeGL(int weight, int height)
{
glViewport ( 0, 0, weight, height );
glMatrixMode ( GL_PROJECTION ); // Select The Projection Matrix
glLoadIdentity ( ); // Reset The Projection Matrix
if ( height==0 ) // Calculate The Aspect Ratio Of The Window
gluPerspective ( 80, ( float ) weight, 1.0, 5000.0 );
else
gluPerspective ( 80, ( float ) weight / ( float ) height, 1.0, 5000.0 );
glMatrixMode ( GL_MODELVIEW ); // Select The Model View Matrix
glLoadIdentity ( ); // Reset The Model View Matrix
}
void GLWidget::paintGL()
{
}
void GLWidget::glTriangle(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Clear Screen And Depth Buffer
glLoadIdentity();// Reset The Current Modelview Matrix
glTranslatef(-1.5f,0.0f,-6.0f);// Move Left 1.5 Units And Into The Screen 6.0
glBegin(GL_TRIANGLES);// Drawing Using Triangles
glColor3f(1.0f,0.0f,0.0f);// Set The Color To Red
glVertex3f( 0.0f, 1.0f, 0.0f);// Top
glColor3f(0.0f,1.0f,0.0f);// Set The Color To Green
glVertex3f(-1.0f,-1.0f, 0.0f);// Bottom Left
glColor3f(0.0f,0.0f,1.0f);// Set The Color To Blue
glVertex3f( 1.0f,-1.0f, 0.0f);// Bottom Right
glEnd();// Finished Drawing The Triangle
}
void GLWidget::glQuard(){
glTranslatef(3.0f,0.0f,0.0f);// Move Right 3 Units
glColor3f(0.5f,0.5f,1.0f);// Set The Color To Blue One Time Only
glBegin(GL_QUADS);// Draw A Quad
glVertex3f(-1.0f, 1.0f, 0.0f);// Top Left
glVertex3f( 1.0f, 1.0f, 0.0f);// Top Right
glVertex3f( 1.0f,-1.0f, 0.0f);// Bottom Right
glVertex3f(-1.0f,-1.0f, 0.0f);// Bottom Left
glEnd();// Done Drawing The Quad
}
void GLWidget::DrawModel()
{
if(bFlag == false)
{
glTriangle();
bFlag == true;
}
else
{
glQuard();
bFlag = false'
}
}
|
|
|
Source code |
1 |
connect(ui->pushButton,SIGNAL(clicked()),ui->centralWidget,SLOT(glTriangle())); |
)