当前位置: 首页 > wzjs >正文

制作企业网站的秘诀搜索引擎 网站推广

制作企业网站的秘诀,搜索引擎 网站推广,海宁市住房和城乡建设网站,公司要做个网站吗以下是使用Qt和OpenGL实现绘制彩色三角形并添加颜色选择按钮的步骤&#xff1a; 一、创建OpenGL绘制组件 继承QOpenGLWidget实现自定义绘制类&#xff1a; // myopenglwidget.h #include <QOpenGLWidget> #include <QOpenGLFunctions_3_3_Core> #include <QO…

以下是使用Qt和OpenGL实现绘制彩色三角形并添加颜色选择按钮的步骤:

一、创建OpenGL绘制组件

  1. 继承QOpenGLWidget实现自定义绘制类:
// myopenglwidget.h
#include <QOpenGLWidget>
#include <QOpenGLFunctions_3_3_Core>
#include <QOpenGLShaderProgram>class MyOpenGLWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_Core
{Q_OBJECT
public:explicit MyOpenGLWidget(QWidget *parent = nullptr);void setTriangleColor(const QColor &color);protected:void initializeGL() override;void paintGL() override;private:GLuint VAO, VBO;QOpenGLShaderProgram *shaderProgram;QVector3D triangleColor = QVector3D(1.0f, 0.0f, 0.0f); // 默认红色
};

二、实现OpenGL初始化与绘制

// myopenglwidget.cpp
void MyOpenGLWidget::initializeGL()
{initializeOpenGLFunctions();glClearColor(0.1f, 0.1f, 0.1f, 1.0f);// 顶点数据(三角形位置)float vertices[] = {-0.5f, -0.5f, 0.0f,0.5f, -0.5f, 0.0f,0.0f,  0.5f, 0.0f};// 创建VAO/VBOglGenVertexArrays(1, &VAO);glGenBuffers(1, &VBO);glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);// 配置顶点属性glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);// 创建着色器程序shaderProgram = new QOpenGLShaderProgram(this);shaderProgram->addShaderFromSourceCode(QOpenGLShader::Vertex,"#version 330 core\n""layout (location = 0) in vec3 aPos;\n""void main() {\n""   gl_Position = vec4(aPos, 1.0);\n""}");shaderProgram->addShaderFromSourceCode(QOpenGLShader::Fragment,"#version 330 core\n""out vec4 FragColor;\n""uniform vec3 ourColor;\n""void main() {\n""   FragColor = vec4(ourColor, 1.0);\n""}");shaderProgram->link();
}void MyOpenGLWidget::paintGL()
{glClear(GL_COLOR_BUFFER_BIT);shaderProgram->bind();shaderProgram->setUniformValue("ourColor", triangleColor);glBindVertexArray(VAO);glDrawArrays(GL_TRIANGLES, 0, 3);shaderProgram->release();
}void MyOpenGLWidget::setTriangleColor(const QColor &color)
{triangleColor = QVector3D(color.redF(), color.greenF(), color.blueF());update(); // 触发重绘
}

三、添加颜色选择按钮

// mainwindow.cpp
#include <QMainWindow>
#include <QPushButton>
#include <QColorDialog>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{MyOpenGLWidget *glWidget = new MyOpenGLWidget(this);setCentralWidget(glWidget);// 创建颜色选择按钮QPushButton *colorBtn = new QPushButton("选择颜色", this);colorBtn->setGeometry(10, 10, 100, 30);connect(colorBtn, &QPushButton::clicked, [=](){QColor color = QColorDialog::getColor(Qt::red, this, "选择三角形颜色");if (color.isValid()) {glWidget->setTriangleColor(color);}});
}

四、运行效果

  1. 窗口显示灰色背景的红色三角形
  2. 点击"选择颜色"按钮弹出颜色选择对话框
  3. 选择颜色后三角形实时更新颜色

关键实现原理

  1. 着色器控制颜色:通过uniform变量传递颜色值到片段着色器
  2. 颜色转换:将Qt的QColor转换为OpenGL的归一化颜色值(0.0-1.0)
  3. 实时更新:调用update()触发OpenGL重绘
http://www.dtcms.com/wzjs/602306.html

相关文章:

  • 宝塔可以做二级域名网站么搜索引擎营销的主要方式有哪些?
  • 做酒店销售上哪个网站好北京网站建设华网天下
  • 新余建设网站镇江网站制作公司
  • 聊城市公司网站建站上海工作室
  • 光谷做网站网站开发后台用什么语言
  • 五一电子网站建设全自动站群系统
  • 河北中石化建设网站购物网站页面设计思路
  • 两学一做网站飘窗梵客官网
  • 大余做网站建设石家庄信息网官方网站
  • 淮安淮阴网站建设wordpress 猪八戒
  • 做民宿加盟哪些网站比较好关键词seo排名怎么选
  • 富德生命人寿保险公司官方网站成都人才网
  • 做淘宝客网站备案要怎么写企业网站建设专业服务
  • 网站改版 请示网站图片一般多大
  • 重庆网站建设选卓光ipad 设计网站
  • 绿蜻蜓建设管理有限公司网站2d游戏制作软件
  • 网站建设所需要软件做网站工作室
  • 游戏网站建设的策划书做暧昧网站
  • 什么做书籍的网站企业网站的购买方式
  • 学生心理健康网站建设论文网页ui设计师培训
  • wap网站开发作业中国企业登记网
  • 网站怎么更换页面图片如何选择一个优质网站建设公司
  • 一点科技官方网站爱论坛
  • 营销网站与企业网站的区别好的网站有哪些
  • 职业做网站游戏的付费wordpress
  • 比百度更好的网站广州高端网站建设公司
  • 最基本最重要的网站推广工具是免费流程图网站
  • 江阴网站的建设户外广告投放公司
  • 加强网站微信信息编辑队伍建设建材有限公司光速东莞网站建设
  • 建设网站企业网上银行登录官方商标查询网站建设