OpenGL基础之绘制

OpenGL学习笔记(十)-几何着色器-实例化 参考网址:LearnOpenGL 中文版 4.7 几何着色器 4.7.1 基本概念 1、顶点和片段着色器之间有一个可选的几何着色器,几何着色器的输入是一个图元(如点或三角形)的一组顶点,顶点发送到下一着色器之前可对它们随意变换,将顶点变换为完全不同的图元,并且还能生成比原来更多的顶点。 #version 330 core layout (points) in; layout (line_strip, max_vertices = 2) out; void main() { gl_Posit 阅读详情

OpenGL绘制函数!

绘制方式说明
GL_POINTS点)绘制点
GL_LINES(线段)连个点一组进行点的绘制,如果只有一个点就会舍弃这个点
GL_LINES_STRIP(条带线)按照顶点顺序连接顶点
GL_LINES_LOOP(循环线)按照顶点顺序连接顶点,最后一个点连接第一点
GL_TRIANGLES(三角形)三个点一组,如果不够三个点就会舍弃 多余的点
GL_TRIANGLE_STRIP(三角形带)顶点按照顺序依次 组成三角形绘制,最后实际形成的是一个三角型带
GL_TRIANGLE_FAN(三角形扇面)将第一个点作为中心点,其他点作为边缘点,绘制一系列的组成扇形的三角形
/**
 * 绘制点
 * @author qiaosen
 * @date 2018/3/16
 */

public class Points extends OpenGLUtils {
    private IntBuffer verIntBuffer, colorIntBuffer;
    private ByteBuffer indbuffer;

    public Points() {

        init();
    }

    // 初始化
    private void init() {
        //比例
        int UNIT_SIZE = 10000;
        //顶点数据(xyz)
        int ver[] = new int[]{
                -2 * UNIT_SIZE, 3 * UNIT_SIZE, 0,
                1 * UNIT_SIZE, 1 * UNIT_SIZE, 0,
                -1 * UNIT_SIZE, -2 * UNIT_SIZE, 0
        };
        //创建顶点缓冲
        verIntBuffer = getIntBuffer(ver);
        //支持65536色彩通道
        int one = 65536;
        //顶点个数=颜色个数
        //颜色数据(RGB A)
        int color[] = new int[]{
                one, 0, 0, 0,
                one, 0, 0, 0,
                one, 0, 0, 0,
                one, 0, 0, 0
        };
        //创建顶点颜色缓冲
        colorIntBuffer = getIntBuffer(color);
        // 索引
        byte indices[] = new byte[]{
                0,3,2
        };
        // 创建顶点索引缓冲
        indbuffer = getByteBuffer(indices);

    }

    public void drawSelf(GL10 gl){
        // 启用顶点数组坐标
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
        // 启用顶点颜色数组坐标
        gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
        // 设置 画笔
        //给画笔指定顶点数据
        gl.glVertexPointer(3,//坐标个数xyz
                GL10.GL_FIXED,//顶点的数据类型
                0,//间隔 默认0
                verIntBuffer);///顶点数据

        //给画笔指定顶点颜色数据
        gl.glColorPointer(4,//颜色组成个数
                GL10.GL_FIXED,//颜色的数据类型
                0,//间隔 默认0
                colorIntBuffer);///顶点颜色数据
        //设置顶点大小
        gl.glPointSize(10);
        //绘制(索引法)
        gl.glDrawElements(GL10.GL_POINTS,//绘制模型(点1 线段3 三角形3)
                3,//索引个数
                GL10.GL_UNSIGNED_BYTE,//数据类型
                indbuffer);//索引数据

    }
}

这里写图片描述

/**
 *
 * @author qiaosen
 * @date 2018/3/15
 */
// 绘制线
public class Lines extends OpenGLUtils {
    private IntBuffer verIntBuffer, colorIntBuffer;
    private ByteBuffer indbuffer;

    public Lines() {
        //初始化View
        init();
    }

    private void init() {
        //比例
        int UNIT_SIZE = 10000;
        //顶点数据(xyz)
        int ver[] = new int[]{
                -2 * UNIT_SIZE,
                3 * UNIT_SIZE,
                0,
                1 * UNIT_SIZE,
                1 * UNIT_SIZE,
                0,
                -1 * UNIT_SIZE,
                -2 * UNIT_SIZE,
                0,
                2 * UNIT_SIZE,
                -3 * UNIT_SIZE,
                0
        };
        //创建顶点缓冲
        verIntBuffer = getIntBuffer(ver);
        //支持65536色彩通道
        int one = 65536;
        //顶点个数=颜色个数
        //颜色数据(RGB A)
        int color[] = new int[]{
                one, 0, 0, 0, one, 0, 0, 0, one, 0, 0, 0, one, 0, 0, 0
        };
        //创建顶点缓冲
        colorIntBuffer = getIntBuffer(color);
        //索引
        byte indices[] = new byte[]{
                0, 3, 2, 1
        };
        //创建顶点索引缓冲
        indbuffer = getByteBuffer(indices);
    }

    public void drawSelf(GL10 gl) {
        //启用顶点数组坐标
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
        //启用顶点颜色数组坐标
        gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
        //设置“画笔”
        //给画笔指定顶点数据
        gl.glVertexPointer(3//坐标个数xyz
                , GL10.GL_FIXED//顶点的数据类型
                , 0//间隔 默认0
                , verIntBuffer);///顶点数据
        //给画笔指定顶点颜色数据
        gl.glColorPointer(4//颜色组成个数
                , GL10.GL_FIXED//颜色的数据类型
                , 0//间隔 默认0
                , colorIntBuffer);///顶点颜色数据
        gl.glLineWidth(10);
//        //绘制(索引法)
        gl.glDrawElements(GL10.GL_LINES //绘制模型(点1 线段3 三角形3)
                , 4//索引个数
                , GL10.GL_UNSIGNED_BYTE//数据类型
                , indbuffer);//索引数据

    }

}

这里写图片描述

/**
 *
 * @author qiaosen
 * @date 2018/3/15
 */
// 三角形
public class Triangle extends OpenGLUtils {
        private IntBuffer verIntBuffer, colorIntBuffer;
        private ByteBuffer indbuffer;

        public Triangle() {
            init();
        }

        //初始化view
        private void init() {
            int UNIT_SIZE = 10000;//比例
            //顶点数据(xyz)
            int ver[] = new int[]{
                    -2 * UNIT_SIZE,
                    5 * UNIT_SIZE,
                    0,
                    1 * UNIT_SIZE,
                    6 * UNIT_SIZE,
                    0,
                    -8 * UNIT_SIZE,
                    -8 * UNIT_SIZE,
                    0,
                    };
            //创建顶点缓冲
            verIntBuffer = getIntBuffer(ver);
            int one = 65536;//支持65536色彩通道
            //顶点个数=颜色个数
            //颜色数据(RGB A)
            int color[] = new int[]{
                    one, 0, 0, 0, one, 0, 1, 0, one, 0, 1, 0
            };
            //创建顶点缓冲
            colorIntBuffer = getIntBuffer(color);
        }

        public void drawSelf(GL10 gl) {
            //启用顶点数组坐标
            gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
            //启用顶点颜色数组坐标
            gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
            //设置“画笔”
            //给画笔指定顶点数据
            gl.glVertexPointer(3//坐标个数xyz
                    , GL10.GL_FIXED//顶点的数据类型
                    , 0//间隔 默认0
                    , verIntBuffer);///顶点数据
            //给画笔指定顶点颜色数据
            gl.glColorPointer(4//颜色组成个数
                    , GL10.GL_FIXED//颜色的数据类型
                    , 0//间隔 默认0
                    , colorIntBuffer);///顶点颜色数据
            gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
        }
}

这里写图片描述

/**
 *
 * @author qiaosen
 * @date 2018/3/15
 */
//多边形
public class Polygon extends OpenGLUtils {
    private FloatBuffer verBuffer;
    private FloatBuffer colorBuffer;
    private int verNum;

    public Polygon() {
        init();
    }

    //初始化
    private void init() {
        int length = 45;//边长
        //顶点个数
        verNum = (360 / length + 2);
        float ver[] = new float[verNum * 3];
        float color[] = new float[verNum * 4];
        //计数器
        int count = 0;
        int count2 = 0;
        int one = 65536;//支持65536色彩通道
        for (int i = 0; i < 360 + length; i += length) {
            double di = Math.toRadians(i);

            ver[count++] = (float) (Math.cos(di) - Math.sin(di));
            ver[count++] = (float) (Math.cos(di) + Math.sin(di));
            ver[count++] = 0;

            color[count2++]=  0;
            color[count2++]=  one;
            color[count2++]=  one;
            color[count2++]=  one;
        }

        verBuffer = getFloatbuffer(ver);
        colorBuffer = getFloatbuffer(color);
    }

    public void drawSelf(GL10 gl) {
        //启用顶点数组坐标
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
        //启用顶点颜色数组坐标
        gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
        //设置“画笔”
        //给画笔指定顶点数据
        gl.glVertexPointer(3//坐标个数xyz
                , GL10.GL_FLOAT//顶点的数据类型
                , 0//间隔 默认0
                , verBuffer);///顶点数据
        //给画笔指定顶点颜色数据
        gl.glColorPointer(4//颜色组成个数
                , GL10.GL_FLOAT//颜色的数据类型
                , 0//间隔 默认0
                , colorBuffer);///顶点颜色数据
        gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, verNum);
    }
}

这里写图片描述

/**
 * 继承GLSurfaceView 初始化GLSurfaceView
 * @author qiaosen
 * @date 2018/3/16
 */

public class DGLView extends GLSurfaceView {
    /**画点**/
    Points mPoints;
    /**画线**/
    Lines mLines;
    /**画三角形**/
    Triangle mTriangle;
    /**画多变形**/
    Polygon mPolygon;

    public DGLView(Context context) {
        super(context);
        init();
    }
    //初始化
    private void init() {
        //  渲染器
        setRenderer(new DGLRender());

        setRenderMode(RENDERMODE_CONTINUOUSLY);
        //  渲染模式  2中
        //  RENDERMODE_CONTINUOUSLY  主动渲染 一直刷新
        //  RENDERMODE_WHEN_DIRTY  被动渲染 需要requestRender();刷新

    }

    private class DGLRender implements Renderer {

        @Override
        public void onSurfaceCreated(GL10 gl, EGLConfig config) {
            //关闭抗抖动 :(对于可用颜色较少的系统 ,可以牺牲分辨率,通过颜色抖动来增加颜色数量)
            gl.glDisable(GL10.GL_DITHER);
            //设置背景为黑色 RGBA
            gl.glClearColor(0,0,0,0);
            //设置hint模式 (快速模式)
            gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
            //开启深度测试(3D里面)
            gl.glEnable(GL10.GL_DEPTH_TEST);

//            mPoints = new Points();
//            mLines = new Lines();
//            mTriangle = new Triangle();
            mPolygon = new Polygon();

        }

        @Override
        public void onSurfaceChanged(GL10 gl, int width, int height) {
            //设置视口
            //x y 手机屏幕原点坐标
            //width height 视口大小
            gl.glViewport(0,0,width,height);
            //设置矩阵(投影矩阵)
            gl.glMatrixMode(GL10.GL_PROJECTION);
            gl.glLoadIdentity();
            //得到宽高比
            float r = (float)width/height;
            //设置视角
            gl.glFrustumf(-r,r,-1,1,1,20);

        }

        @Override
        public void onDrawFrame(GL10 gl) {
            //清除颜色和深度缓存
            gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);
            //设置矩阵((模型矩阵)
            gl.glMatrixMode(GL10.GL_MODELVIEW);
            gl.glLoadIdentity();
            gl.glTranslatef(0,0,-3.0f);
            //绘制
            /**画点**/
//            mPoints.drawSelf(gl);
            /**画线**/
//            mLines.drawSelf(gl);
            /**画三角形**/
//            mTriangle.drawSelf(gl);
            /**画多边形**/
            mPolygon.drawSelf(gl);

        }
    }
}
public class MainActivity extends AppCompatActivity {
    DGLView mDGLView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mDGLView = new DGLView(this);
        setContentView(mDGLView);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mDGLView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mDGLView.onPause();
    }
}

demo下载地址

OpenGL 学习系列--基础的绘制流程 这里,假定绘制一个位于原点的点(0,0),那么映射之后的位置就手机屏幕的中心了。 基本图元 解决了位置的问题,接下来就是形状和颜色的问题。 如同 Android 的 Canvas 对象提供了一些方法来完成基本的绘制:drawPoint、drawRect、drawLine 等,OpenGL 程序也提供且仅提供了三种基本的图元来完成绘制。 点 线 三角形 其他的所有形状都是基于这三种图元来完成的,比如矩形就可以看成是两个三角形拼成的。 由于我们要绘制的是一个点,在坐标系中,一个坐标就可以代替一个点了。假设要 阅读详情

相关推荐

【OpenGL】绘制矩形绘制三角形选择拾取基础教程

上上个星期老师布置了一个大工程让我们写,感觉得到了很多提升,选择拾取这部分也是非常难的。特此总结,并且那次去问老师题目,老师不但很有耐心,还给了我一个苹果,纪念一下。基本情况介绍总共代码331行,函数12个运行效果首先点击右键,会出现菜单鼠标左键点击进入相应功能,画矩形时左键点两下(对角线)即可,画三角形时点三下,选择区域要在已经画了图形的情况下点(也不是不能进啦,只是没有意义),选择拾取效果如下...

能饮一杯否 1646

OpenGl 基本函数 glDrawArrays 详解

glDrawArrays的功能:提供绘制功能,从数组数据中提取数据渲染基本图元。 定义 void glDrawArrays( GLenummode, GLintfirst, GLsizei count); 参数 mode 需要渲染的图元类型,包括 GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN ,GL_TRIANGLES。 GL_PO...

小马过河的专栏 1万+

【OpenGL】计算机图形学实验一:OpenGL基础实验(实验环境的熟悉、简单图形的绘制和输出)

(实验环境的熟悉、简单图形的绘制和输出)1、实验目的和要求学习基本的OpenGL图形绘制和输出函数,掌握使用基于C++ OpenGL开发图形程序的流程。2、实验设备PC机、CodeBlocks\VS系列\OpenGL安装包3、实验内容及原理 搭建VS\CODEBLOCK开发环境中利用OpenGL开发图形学程序的程序框架。实验1: 习题5-27实验2: 习题5-28实验3: 习题5-29实验4: 习题5-30 实验原理(基本知识)4、实验源程序代码、运行结果4.1习题5.27 绘制实线、虚线和点划线4.1.

JKL27的博客 7329

OpenGL ES 绘制图元:glDrawArrays 和 glDrawElements 介绍

一、简介 在 OpenGL ES 2.0 中,使用 glDrawArrays 和 glDrawElements 两个接口绘制图元。 在 OpenGL ES 3.0 中,又新增了 glDrawRangeElements、glDrawElementsInstanced 和 glDrawArraysInstanced 三个接口用于绘制图元。 二、函数介绍 1. glDrawArrays /** * @...

阿飞的博客 1万+

OpenGL 学习系列--基础的绘制流程(2)

愿你有一天,真爱自己,善待自己。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!xt) {愿你有一天,真爱自己,善待自己。

2401_84538884的博客 760

OpenGL学习系列:基础绘制流程

在本文中,我们将深入探讨OpenGL的基础绘制流程。通过理解OpenGL的绘制流程,我们可以创建各种图形和视觉效果。通过学习和实践,你可以进一步探索OpenGL的强大功能,并创建出令人惊叹的图形和视觉效果。你可以根据需要修改绘制函数中的代码,创建自己想要的图形和效果。在这个示例中,我们绘制了一个红色的三角形。根据你的需求,选择合适的回调函数进行注册。接下来,我们注册回调函数,包括绘制函数和其他事件处理函数。在开始之前,确保已经安装了OpenGL开发环境,并且可以正常编译和运行OpenGL程序。

YkDjango的博客 744

OpenGL基础(一):点

一个简单的例子     该示例程序在屏幕上绘制了三个点,背景色黑色,点的颜色为偏黄色。以下点线面与多边形的介绍,都是在该程序的基础上实现。 #include &lt;GL/glut.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; void init(void) { glCle...

万里归来少年心 1656

Qt OpenGL基础入门,怎样将像素绘制到屏幕上,附代码例子

请确保在CMakeLists.txt文件中的`add_executable`命令中包含您的源文件,例如`main.cpp`。然后,使用`target_link_libraries`命令将OpenGL库链接到您的项目中。通过这样配置CMakeLists.txt文件,CMake将能够找到并链接OpenGL库,以便您的项目能够使用OpenGL功能。要在CMake中添加OpenGL库路径,您可以使用`find_package`命令来查找OpenGL库,OpenGL最近比较火,我们也来一起学习学习吧。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 538

OpenGL 学习笔记(一)

如矩阵入栈函数glPushMatrix(),矩阵出栈函数glPopMatrix(),装载矩阵函数glLoadMatrix(),矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate()、*glRotate*()和glScale(),投影变换函数*glOrtho()、glFrustum()和视口变换函数glViewport()OpenGL可以支持很多不同的图元类型,最基础的为点,线,或三角形。

程序猿老樊的博客 1255

OpenGL基础图形绘制实践:直线与圆形绘制

OpenGL(Open Graphics Library)是一个用于渲染2D和3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。它由近250个不同的函数调用组成,可以用来绘制复杂的三维场景,从简单的图形到复杂的三维模型。OpenGL的开发历史可以追溯到上世纪80年代,由SGI公司发起,随后成为图形处理领域的工业标准。GLFW(OpenGL Framework)是一个开源、轻量级的C语言库,用于创建窗口和处理输入,同时管理OpenGL上下文。

weixin_42522857的博客 790

使用OpenGL ES在Android上绘制基础正方形

OpenGL ES(Open Graphics Library for Embedded Systems)是OpenGL的嵌入式版本,专门设计用于各种移动设备和嵌入式平台。它作为图形API(应用程序接口)提供了一套丰富的函数库,以帮助开发者高效地创建二维和三维图形,同时保持了与OpenGL的兼容性。这种图形API的简化和优化是为了解决移动设备和嵌入式系统有限的处理能力、存储空间和能源资源。OpenGL ES 的特点包括:硬件加速。

weixin_32251525的博客 1052

OpenGL 学习实录2: 基础绘制初试

OpenGL 学习实录2: 基础绘制初试 文章目录OpenGL 学习实录2: 基础绘制初试正文0. 概念 & 步骤1. 实做记录1.1 项目目录结构 & CmakeLists 配置1.2 程序结构1.3 初始化 GLFW & 建立窗口1.4 构建着色器程序1.5 创建数据缓冲对象1.6 绘制程序 & 退出时的资源清理其他资源参考连接完整代码示例 正文 完成前一篇OpenGL 学习实录1: 基于 MacOS + Clion 配置 OpenGL 运行环境的运行环境配置,第二篇记录

超悠閒的博客 280

OpenGL基础教程:绘制四面体

四面体是三维空间中最简单的多面体,由四个三角形面、六个边和四个顶点组成。在三维空间中,我们可以用向量和坐标来定义一个四面体。每个顶点可以用一个三维坐标来表示,形如(x, y, z)。四面体的四个顶点可以定义为 (V_1, V_2, V_3, V_4),其对应的坐标分别为 ((x_1, y_1, z_1)), ((x_2, y_2, z_2)), ((x_3, y_3, z_3)), ((x_4, y_4, z_4))。

weixin_42168902的博客 448

第五章《OpenGL 绘制基础图元》

图元是构成图形图像的最基本元素,是 OpenGL 渲染的基础。图元类型OpenGL 常量说明点(Point)GL_POINTS每个顶点渲染为一个点线段(Line)GL_LINES每两个顶点连接为一条线段线带(Line Strip)从第一个点起连接成连续线段线环(Line Loop)同LINE_STRIP,最后连接起点三角形(Triangle)每三个顶点组成一个三角形三角带从第3个点起,组成一系列三角形三角扇类似扇面构建方式,绕一个中心点。

yumeiguo的博客 492

Python进行.tif格式数据波段组合;多波段tif数据波段分离

Python进行.tif格式数据波段组合;多波段tif数据波段分离.tif格式数据波段组合多波段.tif数据波段分离 阔别已久,我又来了;啊啊啊…… 读了研究生,忙到天昏地暗(哈哈哈,这都是借口,主要是花了一定时间适应研究生生活) 这方面的内容我也主要是应用在遥感领域,我们知道在遥感应用中,大多数的图像数据格式为.tif格式的。进行波段组合使用ArcGIS里面的Composite Bands工具是可以实现的,波段分离也可以使用一些工具或巧妙的方法分开。但当你使用Python程序的话,就可以简化这个软件点击和

qq_44353170的博客 1万+

美亚杯2023参赛全攻略:从检材下载到Veracrypt挂载的保姆级教程

本文提供美亚杯2023电子数据取证竞赛的完整参赛指南,重点解析从检材下载、Veracrypt挂载到实战取证的保姆级流程。针对新手常见误区,详细说明两套密码(ZIP解压密码与Veracrypt挂载密码)的区别与正确使用方法,并分享赛前环境搭建、赛中高效分析及赛后报告撰写的核心技巧,帮助参赛者系统备赛,规避基础错误。

y9z0a1b的博客 1080

OpenGL基础绘制

本文依然属于转载。 本文将会介绍使用OpenGL进行点,线,三角形乃至多边形的绘制。 下图是采用不同类型的图形效果 一、点 点”是一切的基础。 OpenGL提供了一系列函数指定一个点。它们都以glVertex开头,后面跟一个数字和1~2个字母。 例如: glVertex2d glVertex2f glVertex3f glVertex3fv 数字表示参数的个...

Arcobaleno 4452

Unity插件——WebView内嵌网页/浏览器插件

一、相关插件: 1、Embedded Browser 插件(文件夹名ZFBrowserUnity) 2、UniWebView插件 3、UnityAndroidWebviewToTexture插件 4、3D WebView for Android插件 二、遇到的问题: 3D WebView显示问题 项目中使用3D WebView存在的问题 三、插件使用 Embedded Browser 加载页面的使用

青岚岁叶的博客 1万+

OpenGL基础图形的绘制

例一:绘制五角星 设五角星5个顶点分别为ABCDE,顶点到坐标轴原点距离为r,ABCDE各点用r表示,分别为 A(0,r); B(-r*sin(2/5*Pi),r*cos(2/5*Pi)); C(-r*sin(Pi/5),-r*cos(Pi/5)); DE和CB关于Y轴对称。 确定5个顶点的坐标后,使用GL_LINE_LOOP函数,将5个点连接起来,顺序...

1090

5. SAP UI5 视图控制器(Controller)初探

本教程的前一个步骤也就是第四个步骤,我们了解了 SAP UI5 XML 视图的使用方法。在该步骤里,我们在 XML 视图里声明了一个 Text 控件实例,该控件位于 sap.m 这个命名空间内。 本步骤会继续接触 SAP UI5 MVC 框架中三大基石的另一块:C - Controller,即控制器。 先看看本步骤完成之后,我们得到的 SAP UI5 应用能实现一个什么样的效果。 访问如下 url: http://localhost:8080/webapp/index.html 能看到一个 Say Hell

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4600

【永磁同步电机】simulink永磁同步电机PMSM矢量控制【含Matlab源码 7372期】

simulink永磁同步电机PMSM矢量控制 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1029

Android OpenGL基础(一、绘制三角形四边形)

一、OpenGL简介 1.1 OpenGL规范   OpenGL 是一种跨平台的图形 API,用于为 3D 图形处理硬件指定标准的软件接口。OpenGL ES 是 OpenGL 规范的一种形式,适用于嵌入式设备。Android 支持多版 OpenGL ES API(推荐在最新 Android 设备上使用OpenGL ES 2.0 API版本): OpenGL ES 1.0 和 1.1 - 此 API 规范受 Android 1.0 及更高版本的支持。 OpenGL ES 2.0 - 此 API 规范受 A

BC工坊 3694

时序预测 | MATLAB实现NGM(1,1)多变量灰色时间序列预测

时序预测 | MATLAB实现NGM(1,1)多变量灰色时间序列预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1517
上一篇: C/C++语言基础
下一篇: OpenGl基础绘制二
jhonjson
博客等级 码龄11年 220粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值