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

wordpress连接小程序/讯展网站优化推广

wordpress连接小程序,讯展网站优化推广,企业外贸网站建设,清远市专业网站制作以下是使用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.whsansanxincailiao.cn/news/30277542.html

相关文章:

  • logomaker在线设计生成/谷歌搜索优化
  • 男女做受网站/郑州网站优化排名
  • 南宁专业网站制作公司/做网站用什么软件好
  • 滁州建设局网站/搜索引擎优化排名技巧
  • 如何做外贸独立网站/餐饮管理和营销方案
  • 深圳网站开发建设服务公司/seo 排名 优化
  • 品牌网站定制开发/什么叫网络营销
  • 台州市建设规划局网站6/新闻今天的最新新闻
  • 江宁网站建设案例/郑州网站建设推广
  • 杭州网站程序开发公司/最近三天的新闻大事摘抄
  • 姜堰网网站/互联网营销的方式有哪些
  • 成功案例展示网站/网络服务有哪些
  • 怎样开设网站/成都新闻最新消息
  • 淘客自己的网站怎么做/搜狗整站优化
  • wordpress页面中添加小工具/百度seo网站优化 网络服务
  • 长沙圭塘网站建设公司/网站运营主要做什么
  • 有没有可以做各种字体的网站/关键词优化分析工具
  • 日本软银集团总资产/北京seo技术交流
  • 许昌正规网站优化公司/百度推广公司哪家比较靠谱
  • 南京百度网站建设/网站推广去哪家比较好
  • 网站建设方案百度文库/最近一周的重大热点新闻
  • 大学生网站建设方案/什么是互联网推广
  • 微网站下载资料怎么做/seo建站技巧
  • 怎么看网站是什么语言做的后台/企业推广网络营销
  • 淘宝客做二级域名网站/湖南网站建设工作室
  • 陕西网站开发联系电话/流程优化
  • wordpress如何编辑/长安seo排名优化培训
  • 网站页面制作建议/搜索引擎营销的实现方法有
  • 国际新闻最新消息美国/seo博客
  • 潍坊 网站建设/武汉大学人民医院怎么样