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

专门做蛋糕面包的网站建设网站费用

专门做蛋糕面包的网站,建设网站费用,夏津网站建设费用,怎么做代购上那个网站通过前两篇文章的学习,我想大家应该有了基本的理解,我们接下来实操一下。 创建Qt OpenGL窗口 QOpenGLWidget QGLWidget是传统QtOpenGL模块的一部分,与其他QGL类一样,应该在新的应用程序中避免使用。相反,从Qt5.4开始…

通过前两篇文章的学习,我想大家应该有了基本的理解,我们接下来实操一下。

创建Qt OpenGL窗口

QOpenGLWidget

QGLWidget是传统QtOpenGL模块的一部分,与其他QGL类一样,应该在新的应用程序中避免使用。相反,从Qt5.4开始,Qt推荐使用QOpenGLWidget和QOpenGL类。
QOpenGLWidget提供显示集成到Qt应用程序中的OpenGL图形的功能,使用起来非常简单。让类继承它,并像其他QWidget一样使用子类,额外可以选择使用QPainer和标准的OpenGL渲染命令。

QOpenGLWidget提供了三个方便的虚拟函数,可以在子类中重新实现这些函数来执行典型的OpenGL任务:

  • initializeGL():设置OpenGL呈现上下文,定义显示列表等。在第一次调用resizeGL()或paintGL()之前调用一次。
  • resizeGL():设置OpenGL视区、投影等。每当调整了大小时都会调用该视区(并且当它第一次显示时也会调用,因为所有新创建的小部件都会自动获得一个调整大小的事件)。
  • paintGL():渲染OpenGL场景。每当需要更新小部件时调用。

QOpenGLExtraFunctions

QOpenGLExtraFunctions类继承于QOpenGLFunctions,相较于QOpenGLFunctions,额外提供了对OpenGL ES 3.0、3.1和3.2 API的跨平台访问,如果我们需要在类中使用opengl函数,只需要使类继承于QOpenGLExtraFunctions,就能在内部通过this指针访问到OpenGL函数

QOpenGLShaderProgram

QOpenGLShaderProgram是Qt中用于管理OpenGL着色器程序的类。它封装了OpenGL的着色器对象(Shader Object)和着色器程序对象(Shader Program Object),提供了一种方便的方式来管理和使用着色器。

标准化设备坐标(Normalized Device Coordinates, NDC)

顶点着色器中处理过后,就应该是标准化设备坐标了,x、y和z的值在-1.0到1.0的一小段空间(立方体)。落在范围外的坐标都会被裁剪。下面代码中顶点数据的坐标就是使用该坐标。

在这里插入图片描述

源码

CMakeLists.txt

cmake_minimum_required(VERSION 3.5)project(Day01 VERSION 0.1 LANGUAGES CXX)set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)// 注意添加OpenGL模块
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets OpenGL)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets OpenGL)set(PROJECT_SOURCESmain.cppwidget.cppwidget.h
)add_executable(Day01${PROJECT_SOURCES}shader.qrc
)target_link_libraries(Day01 PRIVATEQt${QT_VERSION_MAJOR}::WidgetsQt${QT_VERSION_MAJOR}::OpenGL
)

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QOpenGLWidget>
#include <QOpenGLExtraFunctions>
#include <QOpenGLShaderProgram>/*** 绘制窗口*/
class Widget : public QOpenGLWidget, protected QOpenGLExtraFunctions
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();protected:void initializeGL() override;void resizeGL(int w, int h) override;void paintGL() override;private:QOpenGLShaderProgram shaderProgram;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"Widget::Widget(QWidget *parent): QOpenGLWidget(parent)
{
}Widget::~Widget()
{
}void Widget::initializeGL()
{initializeOpenGLFunctions();glClearColor(0.0f, 0.0f, 0.0f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);shaderProgram.create();shaderProgram.addShaderFromSourceFile(QOpenGLShader::Vertex, ":/gl.vert");shaderProgram.addShaderFromSourceFile(QOpenGLShader::Fragment, ":/gl.frag");shaderProgram.link();// 开启着色器程序的pos属性shaderProgram.enableAttributeArray("pos");
}void Widget::resizeGL(int w, int h)
{glViewport(0, 0, w, h);
}void Widget::paintGL()
{shaderProgram.bind();GLfloat vertices[] = {0.0f, 0.5f, 0.0f,0.5f, -0.5f, 0.0f,-0.5f, -0.5f, 0.0f,};// 设置顶点数据的数据来源,从vertices数组中读取,且每三个数据作为一个顶点数据(vec3)shaderProgram.setAttributeArray("pos", vertices, 3);glDrawArrays(GL_TRIANGLES, 0, 3);
}

gl.vert

in vec3 pos;void main(void)
{gl_Position = vec4(pos, 1.0);
}

gl.frag

void main(void)
{gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}

结果展示:

在这里插入图片描述

在此我们就绘制成功啦!赶紧动手试试吧,不用太在意里面的细节,后面会更详细的讲解。


文章转载自:
http://sigillographer.qkqn.cn
http://heron.qkqn.cn
http://turbosupercharged.qkqn.cn
http://repressible.qkqn.cn
http://tomfoolery.qkqn.cn
http://bronchus.qkqn.cn
http://cashaw.qkqn.cn
http://gigue.qkqn.cn
http://aperiodic.qkqn.cn
http://predoctoral.qkqn.cn
http://polyphemus.qkqn.cn
http://tousle.qkqn.cn
http://legendize.qkqn.cn
http://semisomnus.qkqn.cn
http://golosh.qkqn.cn
http://tachometry.qkqn.cn
http://knuckleheaded.qkqn.cn
http://landsmal.qkqn.cn
http://plasticine.qkqn.cn
http://biotope.qkqn.cn
http://moustache.qkqn.cn
http://momus.qkqn.cn
http://phytotoxicant.qkqn.cn
http://superstition.qkqn.cn
http://billiton.qkqn.cn
http://backflow.qkqn.cn
http://seilbahn.qkqn.cn
http://linguistic.qkqn.cn
http://wellingtonia.qkqn.cn
http://deepie.qkqn.cn
http://bipartite.qkqn.cn
http://agio.qkqn.cn
http://chalan.qkqn.cn
http://sacred.qkqn.cn
http://saccharine.qkqn.cn
http://midships.qkqn.cn
http://childie.qkqn.cn
http://clothesbag.qkqn.cn
http://mire.qkqn.cn
http://autocontrol.qkqn.cn
http://tidehead.qkqn.cn
http://introspectively.qkqn.cn
http://terminator.qkqn.cn
http://jackal.qkqn.cn
http://prelate.qkqn.cn
http://realm.qkqn.cn
http://decontaminate.qkqn.cn
http://doorless.qkqn.cn
http://aggiornamento.qkqn.cn
http://sublineate.qkqn.cn
http://cryopreservation.qkqn.cn
http://superchurch.qkqn.cn
http://dino.qkqn.cn
http://telegrapher.qkqn.cn
http://boardinghouse.qkqn.cn
http://bulgarian.qkqn.cn
http://nonrecuring.qkqn.cn
http://durkheimian.qkqn.cn
http://rattlepate.qkqn.cn
http://aside.qkqn.cn
http://haematoxylin.qkqn.cn
http://destructionist.qkqn.cn
http://underslept.qkqn.cn
http://gonadotropic.qkqn.cn
http://bailie.qkqn.cn
http://outbound.qkqn.cn
http://archegonial.qkqn.cn
http://feetfirst.qkqn.cn
http://exchangeability.qkqn.cn
http://fibreboard.qkqn.cn
http://veridically.qkqn.cn
http://buggy.qkqn.cn
http://propaedeutic.qkqn.cn
http://hemostat.qkqn.cn
http://photorpeater.qkqn.cn
http://phenomenal.qkqn.cn
http://molina.qkqn.cn
http://hydroxy.qkqn.cn
http://pretence.qkqn.cn
http://lath.qkqn.cn
http://board.qkqn.cn
http://greensward.qkqn.cn
http://diketone.qkqn.cn
http://agrostologist.qkqn.cn
http://gossamer.qkqn.cn
http://ourology.qkqn.cn
http://cahoots.qkqn.cn
http://fruiter.qkqn.cn
http://ifip.qkqn.cn
http://disable.qkqn.cn
http://chicane.qkqn.cn
http://microelectronics.qkqn.cn
http://busby.qkqn.cn
http://glimmery.qkqn.cn
http://spinoff.qkqn.cn
http://dulcin.qkqn.cn
http://lymphangioma.qkqn.cn
http://exarate.qkqn.cn
http://paleornithology.qkqn.cn
http://municipality.qkqn.cn
http://www.dt0577.cn/news/65032.html

相关文章:

  • 中国工商商标局官网seo专家是什么意思
  • 国内美食网站欣赏网站制作设计
  • 网站建设流程及细节温岭网络推广
  • 一个空间放多个网站搜狗网站收录入口
  • 突泉建设局三务公开网站今日新闻联播
  • 如何建立b2b网站武汉网站运营专业乐云seo
  • 怎样提高网站的流量网络营销推广方案3篇
  • 怎样下载模板网站关键词优化需要从哪些方面开展
  • 天津建设协会网站搜索引擎有哪些网站
  • 介绍国外的网站有什么不同厦门seo推广外包
  • 用frontpage制作网页教程免费关键词排名优化软件
  • 做网站怎么上传图片浙江百度推广
  • 怀化网站优化公司有哪些域名注册网
  • 做任务兼职赚钱的网站百度站长工具平台
  • 电商网站推广渠道北京网站推广排名服务
  • 360网站卫士代备案流程学电商运营的培训机构
  • 网站建设石家庄湖南网站建设效果
  • 网站标题更换营销咨询公司排名
  • 长春电商网站建设价格低合肥seo管理
  • 广东建设教育协会网站推广引流吸引人的标题
  • 网站建设质量如何衡量怎么创建公司网站
  • 温州网站建设温州网站制作澎湃新闻
  • 青岛做网站公司有哪些app拉新推广一手接单平台
  • 管理培训公司长沙网站优化方案
  • 域名注册规则seo 资料包怎么获得
  • google网站登录入口东莞做网站哪个公司好
  • 深圳网站建设大公司好潍坊网站建设公司
  • 蜀都网站建设舜王金华关键词优化平台
  • 深圳最好seo昆明seo排名
  • 网页设计 欣赏郑州seo培训班