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

pc网站怎么做自适应企业网站优化公司

pc网站怎么做自适应,企业网站优化公司,天天向上做图网站,薪火相传网站建设以下是使用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/146441.html

相关文章:

  • 电商网站建设c微fzsszai宁德市疫情
  • wordpress后台打开时间长山西网站seo
  • 刚做外贸最好用哪个网站网站开发合同
  • 成都网站建设制作代运营哪家比较可靠
  • 施秉网站建设比较好的免费网站
  • 国外优秀ps网站专业推广引流团队
  • 个人站长做网站全国疫情今天最新消息
  • 淮南新闻网湖南网站优化
  • wordpress性能检测温州企业网站排名优化
  • 做网站版权所有怎么写百度官网网站
  • 灵山招聘网灵山英才网做灵山专业的招聘网站seo入门到精通
  • 汽车专业网站郑州纯手工seo
  • 建网站设郑州seo网络推广
  • 上海地产网站建设如何开展网络营销
  • c 网站做微信收款功能商城网站开发公司
  • 商丘至开网络科技有限公司林哥seo
  • 网上学编程的有哪些比较好的网站软件培训机构有哪些?哪个比较好
  • 网站源码论坛网上营销是干什么的
  • ftp和网站后台百度刷自己网站的关键词
  • 网站建设维护的相关基础知识seo就业哪家好
  • 首钢建设工资网站外链查询工具
  • 长宁区网站建设网站制作网络舆情管控
  • 营销网站开发公司网店推广的方式
  • 外卖网站建设方案书网站不收录怎么办
  • 搬瓦工做网站谷歌优化seo
  • 信息聚合网站怎么做国外域名注册
  • 思淘网站建设建网站软件
  • 动漫网站htmlseo优化轻松seo优化排名
  • 陕西网站建设电话站长统计幸福宝2022年排行榜
  • 南昌哪里有网站建设百度官方电话