当前位置: 首页> 房产> 市场 > 企业网站的劣势_搭建网站首页_seo免费培训教程_百度收录提交入口网址是什么

企业网站的劣势_搭建网站首页_seo免费培训教程_百度收录提交入口网址是什么

时间:2025/7/12 12:21:58来源:https://blog.csdn.net/hgaohr1021/article/details/147605773 浏览次数:0次
企业网站的劣势_搭建网站首页_seo免费培训教程_百度收录提交入口网址是什么

请添加图片描述
请添加图片描述
请添加图片描述
triangle.cpp

#include "triangle.h"
#include <cmath>
GLuint VBO, VAO;Triangle::Triangle(QWidget* parent):QOpenGLWidget(parent)
{this->setWindowTitle("Camera");
}Triangle::~Triangle(){delete ourShader;core->glDeleteVertexArrays(1, &VAO);core->glDeleteBuffers(1, &VBO);texture1->destroy();texture2->destroy();
}void Triangle::initializeGL(){//着色器部分core = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_3_Core>();ourShader = new Shader(":/shaders/vertexshadersource.vert", ":/shaders/fragmentshadersource.frag");//VAO,VBO数据部分float vertices[] = {-0.5f, -0.5f, -0.5f,  0.0f, 0.0f,0.5f, -0.5f, -0.5f,  1.0f, 0.0f,0.5f,  0.5f, -0.5f,  1.0f, 1.0f,0.5f,  0.5f, -0.5f,  1.0f, 1.0f,-0.5f,  0.5f, -0.5f,  0.0f, 1.0f,-0.5f, -0.5f, -0.5f,  0.0f, 0.0f,-0.5f, -0.5f,  0.5f,  0.0f, 0.0f,0.5f, -0.5f,  0.5f,  1.0f, 0.0f,0.5f,  0.5f,  0.5f,  1.0f, 1.0f,0.5f,  0.5f,  0.5f,  1.0f, 1.0f,-0.5f,  0.5f,  0.5f,  0.0f, 1.0f,-0.5f, -0.5f,  0.5f,  0.0f, 0.0f,-0.5f,  0.5f,  0.5f,  1.0f, 0.0f,-0.5f,  0.5f, -0.5f,  1.0f, 1.0f,-0.5f, -0.5f, -0.5f,  0.0f, 1.0f,-0.5f, -0.5f, -0.5f,  0.0f, 1.0f,-0.5f, -0.5f,  0.5f,  0.0f, 0.0f,-0.5f,  0.5f,  0.5f,  1.0f, 0.0f,0.5f,  0.5f,  0.5f,  1.0f, 0.0f,0.5f,  0.5f, -0.5f,  1.0f, 1.0f,0.5f, -0.5f, -0.5f,  0.0f, 1.0f,0.5f, -0.5f, -0.5f,  0.0f, 1.0f,0.5f, -0.5f,  0.5f,  0.0f, 0.0f,0.5f,  0.5f,  0.5f,  1.0f, 0.0f,-0.5f, -0.5f, -0.5f,  0.0f, 1.0f,0.5f, -0.5f, -0.5f,  1.0f, 1.0f,0.5f, -0.5f,  0.5f,  1.0f, 0.0f,0.5f, -0.5f,  0.5f,  1.0f, 0.0f,-0.5f, -0.5f,  0.5f,  0.0f, 0.0f,-0.5f, -0.5f, -0.5f,  0.0f, 1.0f,-0.5f,  0.5f, -0.5f,  0.0f, 1.0f,0.5f,  0.5f, -0.5f,  1.0f, 1.0f,0.5f,  0.5f,  0.5f,  1.0f, 0.0f,0.5f,  0.5f,  0.5f,  1.0f, 0.0f,-0.5f,  0.5f,  0.5f,  0.0f, 0.0f,-0.5f,  0.5f, -0.5f,  0.0f, 1.0f};core->glGenVertexArrays(1, &VAO);//两个参数,第一个为需要创建的缓存数量。第二个为用于存储单一ID或多个ID的GLuint变量或数组的地址core->glGenBuffers(1, &VBO);core->glBindVertexArray(VAO);core->glBindBuffer(GL_ARRAY_BUFFER, VBO);core->glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);core->glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)0);core->glEnableVertexAttribArray(0);// texture coord attributecore->glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)(3 * sizeof(float)));core->glEnableVertexAttribArray(1);//纹理//第一张箱子texture1 = new QOpenGLTexture(QImage("D://1//1.png").mirrored(), QOpenGLTexture::GenerateMipMaps); //直接生成绑定一个2d纹理, 并生成多级纹理MipMapsif(!texture1->isCreated()){qDebug() << "Failed to load texture" << endl;}texture1->setWrapMode(QOpenGLTexture::DirectionS, QOpenGLTexture::Repeat);// 等于glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);texture1->setWrapMode(QOpenGLTexture::DirectionT, QOpenGLTexture::Repeat);//    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);texture1->setMinificationFilter(QOpenGLTexture::Linear);   //等价于glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);texture1->setMagnificationFilter(QOpenGLTexture::Linear);  //     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);//第二张笑脸texture2 = new QOpenGLTexture(QImage("D://1//10.png").mirrored(), QOpenGLTexture::GenerateMipMaps); //直接生成绑定一个2d纹理, 并生成多级纹理MipMapsif(!texture2->isCreated()){qDebug() << "Failed to load texture" << endl;}texture2->setWrapMode(QOpenGLTexture::DirectionS, QOpenGLTexture::Repeat);// 等于glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);texture2->setWrapMode(QOpenGLTexture::DirectionT, QOpenGLTexture::Repeat);//    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);texture2->setMinificationFilter(QOpenGLTexture::Linear);   //等价于glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);texture2->setMagnificationFilter(QOpenGLTexture::Linear);  //     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);//设置纹理单元编号ourShader->use();ourShader->setInt("texture1", 0);ourShader->setInt("texture2", 1);//开启计时器,返回毫秒time.start();//给着色器变量赋值QMatrix4x4 projection;// view.translate(QVector3D(0.0f, 0.0f, -3.0f));projection.perspective(45.0f, (GLfloat)width()/(GLfloat)height(), 0.1f, 100.0f);ourShader->use();//ourShader->setMat4("view", view);ourShader->setMat4("projection", projection);//开启状态core->glClearColor(0.2f, 0.3f, 0.3f, 1.0f);core->glEnable(GL_DEPTH_TEST);
}void Triangle::resizeGL(int w, int h){core->glViewport(0, 0, w, h);
}QVector3D cubePositions[] = {       //为了省事,设为全局函数,若嫌封装性不好,改为成员变量指针,在initializeGL()重新赋值就好QVector3D( 0.0f,  0.0f,  -1.0f), //小小改动一下将z轴的0.0f变为-1.0fQVector3D( 2.0f,  5.0f, -15.0f),QVector3D(-1.5f, -2.2f, -2.5f),QVector3D(-3.8f, -2.0f, -12.3f),QVector3D( 2.4f, -0.4f, -3.5f),QVector3D(-1.7f,  3.0f, -7.5f),QVector3D( 1.3f, -2.0f, -2.5f),QVector3D( 1.5f,  2.0f, -2.5f),QVector3D( 1.5f,  0.2f, -1.5f),QVector3D(-1.3f,  1.0f, -1.5f)
};void Triangle::paintGL(){core->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);core->glActiveTexture(GL_TEXTURE0);texture1->bind();core->glActiveTexture(GL_TEXTURE1);texture2->bind();ourShader->use();QMatrix4x4 view;GLfloat radius = 15.0f;GLfloat camX = sin(((GLfloat)time.elapsed())/1000) * radius; //返回的毫秒太大了,除以1000小一些GLfloat camZ = cos(((GLfloat)time.elapsed())/1000) * radius;view.lookAt(QVector3D(camX, 0.0f, camZ), QVector3D(0.0f, 0.0f, 0.0f), QVector3D(0.0f, 1.0f, 0.0f));ourShader->setMat4("view", view);for(GLuint i = 0; i != 10; ++i){QMatrix4x4 model;model.translate(cubePositions[i]);model.rotate(20.0f * i, cubePositions[i]);//这里角度改为固定角度ourShader->setMat4("model", model);core->glBindVertexArray(VAO);core->glDrawArrays(GL_TRIANGLES, 0, 36);}update();
}

其它文件及方法,直接复制全部内容:
Qt5与现代OpenGL学习(五)旋转的正六面体

关键字:企业网站的劣势_搭建网站首页_seo免费培训教程_百度收录提交入口网址是什么

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: