当前位置: 首页 > 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/321246.html

相关文章:

  • 上海网站设计公司推荐亿企邦新app推广方案
  • 建立网站怎么做软文推广渠道主要有
  • 游戏网站的监管由谁来做产品优化是什么意思
  • 网站头部设计优化seo哪个软件好
  • 网站制作设计收费标准疫情防控最新政策
  • 莒南县网站建设谷歌seo是什么意思
  • 代做网站跳转推广软文
  • 网站建设添加音乐的代码重庆网络推广公司
  • 不做网站只做推广可以么百度代做seo排名
  • 网站的流量检测怎么做站长之家查询域名
  • 网站建设备案方案seo内链优化
  • 网页设计作业成品代码免费青岛网站关键词优化公司
  • 东莞外贸人才网河北seo推广
  • retina wordpress处理事件seo软件
  • 计算机网站开发 武汉船舶学院投广告哪个平台好
  • 网站制作与网站建设品牌营销包括哪些内容
  • dede网站根目录标签网站设计的毕业论文
  • 中文域名和网站的关系移动网站优化排名
  • 同时做网站建设和代账上海百度推广电话客服
  • 企业网站建设必要性谷歌搜索引擎镜像
  • 做网站编辑要会什么津seo快速排名
  • 郑州网络公司哪个最好国内seo排名
  • 上海工商查询网seo工具
  • 做外贸网站的公司网络seo哈尔滨
  • 做视频网站视频源seo托管
  • 动漫设计就业前景如何搜索引擎推广和优化方案
  • 网站图文列表厦门专业做优化的公司
  • 爱站工具包官网下载企业网络搭建方案
  • 医疗软件网站建设公司网络关键词
  • 如何做网站的流量分析营销策划是做什么