首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏linux驱动个人学习

    最小生成树的两种方法(Kruskal算法和Prim算法)

    由于不断向集合u中加点,所以最小代价边必须同步更新;需要建立一个辅助数组closedge,用来维护集合v中每个顶点与集合u中最小代价边信息,: struct { char vertexData > #include <queue> #include <algorithm> using namespace std; #define INFINITE 0xFFFFFFFF #define VertexData data; unsigned int lowestcost; }closedge[vexCounts]; //Prim算法中的辅助信息 typedef struct { VertexData u; VertexData v; unsigned int cost; //边的代价 }Arc; //原始图的边信息 void AdjMatrix(unsigned int adjMat true : false; } bool FindTree(VertexData u, VertexData v,vector<vector<VertexData> > &Tree) { unsigned

    2.3K30发布于 2020-01-09
  • 来自专栏Android技术专栏

    构建简单物体

    :FloatArray,val drawList:List<DrawCommand>)//一个holder,用于保存顶点数据和绘制命令 private var vertexData:FloatArray [offset++]=circle.center.x vertexData[offset++]=circle.center.y vertexData[offset++]= vertexData[offset++]=circle.center.z+circle.radius*sin(angleInRadians) } [offset++]=xPosition vertexData[offset++]=yStart vertexData[offset++]=zPosition vertexData[offset++]=xPosition vertexData[offset++]=yEnd vertexData

    44110编辑于 2024-02-08
  • 来自专栏曾大稳的博客

    OpenGLES添加水印

    ); GLES20.glBufferSubData(GLES20.GL_ARRAY_BUFFER, vertexData.length * 4, textureData.length * [12] = 0.8f - w; vertexData[13] = -0.8f; vertexData[14] = 0; vertexData[15] = 0.8f; vertexData[16] = -0.8f; vertexData[17] = 0; vertexData[18] = 0.8f - w; vertexData[19] = -0.7f; vertexData[20] = 0; vertexData[21] = 0.8f; vertexData[22] = -0.7f; vertexData[23] = 0; } private void createWaterTextureId() {

    2.4K51发布于 2018-09-11
  • 来自专栏曾大稳的博客

    OpenGLES顶点缓冲VBO

    为VBO设置顶点数据的值 GLES20.glBufferSubData(GLES20.GL_ARRAY_BUFFER, 0, vertexData.length * 4, vertexBuffer); import java.nio.FloatBuffer; //纹理 根据坐标系映射 public class BitmapTexture { //顶点坐标 static float vertexData 分配VBO需要的缓存大小 GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, vertexData.length * 4 + textureData.length 为VBO设置顶点数据的值 GLES20.glBufferSubData(GLES20.GL_ARRAY_BUFFER, 0, vertexData.length * 4, vertexBuffer ); GLES20.glBufferSubData(GLES20.GL_ARRAY_BUFFER, vertexData.length * 4, textureData.length *

    1.6K20发布于 2018-09-11
  • 来自专栏曾大稳的博客

    OpenGLES帧缓冲FBO

    java.nio.FloatBuffer; //纹理 根据坐标系映射 public class BitmapFboTexture { //顶点坐标 static float vertexData //每一次取点的时候取几个点 static final int COORDS_PER_VERTEX = 3; private final int vertexCount = vertexData.length .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData java.nio.FloatBuffer; //纹理 根据坐标系映射 public class BitmapRenderTexture { //顶点坐标 static float vertexData .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    2.2K20发布于 2018-09-11
  • 来自专栏代码编写世界

    从DEM到三维地形:用PLY、OBJ、glTF构建GIS可视化模型

    [m].x = startX + xi * srcDx; vertexData[m].y = startY + yi * srcDy; vertexData[m].z = srcDemBuf [vi].x << ' '; outfile << vertexData[vi].y << ' '; outfile << vertexData[vi].z << '\n'; outfile << (int)vertexData[vi].red << ' '; outfile << (int)vertexData[vi].green << ' '; outfile << ( [m]; vertexData[m].texCoordX = (double)xi / (srcDemWidth - 1); vertexData[m].texCoordY = [vi].x << ' '; outfile << vertexData[vi].y << ' '; outfile << vertexData[vi].z << '\n'; }

    17410编辑于 2026-03-10
  • 来自专栏Felix的技术分享

    用OpenGL构建粒子喷泉

    ) { this.floatBuffer = ByteBuffer.allocateDirect(vertexData.length * BYTE_PER_FLOAT) .order(ByteOrder.nativeOrder()) .asFloatBuffer(); floatBuffer.put(vertexData) floatBuffer.position(0); } /** * 在原有数组的基础上更新指定范围的元素,如果全部复制的话速度太慢 * * @param vertexData * @param start * @param count */ public void updateBuffer(float[] vertexData, int start, int count) { floatBuffer.position(start); floatBuffer.put(vertexData, start,

    1.6K80发布于 2018-06-08
  • 来自专栏音视频技术学习笔记

    19.opengl高级-高级数据

    GLintptr writeoffset, GLsizeiptr size); 使用方法,不做过多解释了,绑定一个read和一个write,从read copy 到write内存 float vertexData GL_COPY_WRITE_BUFFER, vbo2); glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, 0, 0, sizeof(vertexData )); or float vertexData[] = { ... }; glBindBuffer(GL_ARRAY_BUFFER, vbo1); glBindBuffer(GL_COPY_WRITE_BUFFER , vbo2); glCopyBufferSubData(GL_ARRAY_BUFFER, GL_COPY_WRITE_BUFFER, 0, 0, sizeof(vertexData));

    61020发布于 2020-07-14
  • 来自专栏从流域到海域

    图(Graph)的常用代码集合

    表示有向图,DN表示有向网,DUG表示无向图,UDN表示无向网*/ typedef enum {DG, DN, UDG, UDN} GraphKind; /*枚举类型*/ typedef char VertexData adj; /*对于无权图,用1或0表示是否相邻;对带权图,则为权值类型*/ OtherInfo info; } ArcNode; typedef struct { VertexData } AdjMartrix; /*(AdjMartrix Matrix Graph)*/ /*采用邻接矩阵表示法创建有向图*/ int LocateVertex(AdjMartrix *G, VertexData struct ArcNode *nextarc; /*指向下一条弧的指针*/ OtherInfo; } ArcNode; typedef struct VerNode { VertexData int tailvex,headvex; struct ArcNode *hlink, *tlink; } ArcNode; typedef struct VertexNode { VertexData

    1.5K60发布于 2018-02-05
  • 来自专栏曾大稳的博客

    OpenGLES正交投影

    在图片渲染的时候,之前使用的顶点坐标是占满整个屏幕的归一化坐标 //顶点坐标 static float vertexData[] = { // in counterclockwise order import java.nio.FloatBuffer; //纹理 根据坐标系映射 public class BitmapTexture { //顶点坐标 static float vertexData //每一次取点的时候取几个点 static final int COORDS_PER_VERTEX = 3; private final int vertexCount = vertexData.length Context context) { this.context = context; vertexBuffer = ByteBuffer.allocateDirect(vertexData.length .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    1K40发布于 2018-09-11
  • 来自专栏曾大稳的博客

    Android OpenGLES 绘制图片纹理

    import java.nio.FloatBuffer; //纹理 根据坐标系映射 public class BitmapTexture { //顶点坐标 static float vertexData //每一次取点的时候取几个点 static final int COORDS_PER_VERTEX = 3; private final int vertexCount = vertexData.length Context context) { this.context = context; vertexBuffer = ByteBuffer.allocateDirect(vertexData.length .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    1.3K30发布于 2018-09-11
  • 来自专栏每日一篇技术文章

    Metal_入门02_带你走流程

    渲染管线流程图 8.创建缓冲区(顶点和颜色) let vertexLength = vertexData.count * MemoryLayout<Float>.size let vertexBuffer = device.makeBuffer(bytes: vertexData, length: vertexLength, options: []) let colorLength = vertexColorData.count /// 让绘制对象绑定到当前绘制帧 12.提交 commandBuffer.commit() 提示: 执行这一步,GPU 会记录命令缓冲区对象,准备渲染 附上顶点和颜色数组 let vertexData

    88010发布于 2018-09-14
  • 来自专栏曾大稳的博客

    Android OpenGLES渲染MediaCodec解码数据

    SurfaceTexture.OnFrameAvailableListener { private Context context; private final float[] vertexData Context context) { this.context = context; vertexBuffer = ByteBuffer.allocateDirect(vertexData.length .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    3K10发布于 2018-09-11
  • 来自专栏每日一篇技术文章

    OpenGLES_实战04_教你绘制球体

    numVertices_out) { *numVertices_out = numVertices; } return numIndices; } 接下来定义上面函数需要的参数 GLfloat *_vertexData 纹理坐标内存标识 GLuint _numIndices; // 顶点索引的数量 调用上面方法生成顶点坐标,纹理坐标,索引数组 _numIndices = generateSphere(200, 1.0, &(_vertexData GL_ARRAY_BUFFER, _vertexBuffer); // 将命名的缓冲对象绑定到指定的类型上去 glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*_numVetex*3,_vertexData

    1.4K10发布于 2018-09-14
  • 来自专栏字节流动

    OpenGL ES + MediaPlayer 渲染播放视频+滤镜效果

    private final float[] vertexData = { 1f,-1f,0f, -1f,-1f,0f, 1f,1f textureVertexData = { 1f,0f, 0f,0f, 1f,1f, 0f,1f }; vertexData aPositionLocation; private int programId; private FloatBuffer vertexBuffer; private final float[] vertexData this) { updateSurface = false; } vertexBuffer = ByteBuffer.allocateDirect(vertexData.length .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    2.5K21发布于 2020-11-30
  • 来自专栏Android技术专栏

    定义顶点和着色器

    传输数据的方式如下图所示:    下面给出定义长方形顶点和分配本地内存的代码:    private var vertexData:FloatBuffer init{ val tableVertices //Mallets 4.5f,2f, 4.5f,12f ) //分配本地内存块 vertexData BYTES_PER_FLOAT) .order(ByteOrder.nativeOrder())//按照本地字节序组织内容 .asFloatBuffer() vertexData.put

    48510编辑于 2024-01-18
  • 来自专栏Helloted

    OpenGL ES实践

    2、渲染某个色块 OpenGL ES的坐标系与Core Graphics的坐标系不一样,起点是在屏幕的中点,到两边是1 // 声明顶点数据 GLfloat vertexData[] = //这几行代码表示的含义是:声明一个缓冲区的标识(GLuint类型)让OpenGL自动分配一个缓冲区并且返回这个标识的值绑定这个缓冲区到当前“Context”最后,将我们前面预先定义的顶点数据“vertexData glGenBuffers(1, &buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData ), vertexData, GL_STATIC_DRAW); // 激活顶点属性(默认它的关闭的) glEnableVertexAttribArray(GLKVertexAttribPosition

    95610编辑于 2022-06-07
  • 来自专栏Android技术专栏

    增加颜色和着色

    主要修改下面这行代码: //关联属性和顶点数据的数组 glVertexAttribPointer(0, POSITION_COMPONENT_COUNT, GL_FLOAT,false,STRIDE,vertexData )   然后,加入代码,将顶点数组中的颜色属性传给顶点着色器中的a_Color变量,在onSurfaceCreated函数末尾加入如下代码: //给顶点着色器传入颜色属性 vertexData.position (POSITION_COMPONENT_COUNT) glVertexAttribPointer(1, COLOR_COMPONENT_COUNT, GL_FLOAT,false,STRIDE,vertexData

    36210编辑于 2024-02-02
  • 来自专栏曾大稳的博客

    Android OpenGLES绘制yuv420纹理

    java.nio.FloatBuffer; public class YUV420Texture { private Context context; //顶点坐标 static float vertexData //每一次取点的时候取几个点 static final int COORDS_PER_VERTEX = 3; private final int vertexCount = vertexData.length Context context) { this.context = context; vertexBuffer = ByteBuffer.allocateDirect(vertexData.length .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    2.5K30发布于 2018-09-11
  • 来自专栏音视频开发之旅

    音视频开发之旅(42)-光照基础(一)

    关键代码如下: 首先确定每个面的顶点坐标和纹理坐标 val vertexData = floatArrayOf( //position //texture 0.5f, 0.0f, 1.0f ) var vertexArrayBuffer = ByteBuffer .allocateDirect(vertexData.size .order(ByteOrder.nativeOrder()) .asFloatBuffer() .put(vertexData

    76630发布于 2021-04-19
领券