
c
文章平均质量分 87
cwjokaka
GitHub: https://github.com/cwjokaka
展开
-
CMakeList.txt的详解
以下是我用cLion创建C99项目时自动生成的CMakeList.txt文件,坐下记录,怕日后忘记cmake_minimum_required(VERSION 3.7) #CMake 最低版本要求,低于3.7构建过程会被终止project(ls_oo) #项目名称set(CMAKE_C_STANDARD 99)原创 2017-09-23 13:53:41 · 900 阅读 · 0 评论 -
cmake初探
在学OpenGL的时候遇到问题了:不会用cmake,只能从头学了,下面记下我在clion里学习cmake的记录:PART_1:由最简单的HelloWorld开始首先创建c项目,名为cmake_1_helloworld,创建后,可以看到项目结构是这样的:可以看到clion已经为我生成CMakeLists.txt文件了,看看里面的内容和我的注释:#cmake最低版本需求,不原创 2017-09-30 10:52:35 · 440 阅读 · 0 评论 -
OpenGL_11:封装一个自己的着色器类
之前都是通过读取着色器字符串来创建着色器,这样耦合程度很高,并且生成、链接着色器程序也需要写很繁杂的过程。现在我编写一个Shader类来读取着色器文本文件,并且封装那些繁杂的步骤。Shader头文件:#ifndef INC_10_SHADER_LOADER_SHADER_H#define INC_10_SHADER_LOADER_SHADER_H#include #incl原创 2017-10-19 00:56:39 · 1296 阅读 · 0 评论 -
OpenGL_1:创建项目前的准备
关于opengl的简介不多说了,网上都有先来简单说一说我的开发环境和使用的库使用的IDE是clion,不用vs是因为平常工作的关系习惯使用idea进行web开发,而idea和clion是同一间公司的,界面和操作极其相似,总而言之只是为了方便我个人使用而已。库使用的是GLFW、GLAD,以下是简介:GLFW:在我们画出出色的效果之前,首先要做的就是创建一个Open原创 2017-10-10 21:13:16 · 633 阅读 · 0 评论 -
OpenGL_2:我的第一个窗口
关于GLAD和GLFW的介绍与安装配置在这里:点击打开链接放代码,注释很详细#include //包含GLFW前要包含GLAD,GLAD里包含了正确的OpenGL头文件(如GL/gl.h)#include #include const unsigned int SCR_WIDTH = 800;const unsigned int SCR_HEIGHT = 600;v原创 2017-10-13 00:57:50 · 478 阅读 · 0 评论 -
OpenGL_12:上下键调整图片可见度
#include #include #include #include "Shader.h"/** * stb_image.h是Sean Barrett的一个非常流行的单头文件图像加载库,它能够加载大部分流行的文件格式,并且能够很简单得整合到你的工程之中 * 通过定义STB_IMAGE_IMPLEMENTATION,预处理器会修改头文件,让其只包含相关的函数定义源码,等于是将这个头文原创 2017-10-22 11:19:29 · 801 阅读 · 0 评论 -
OpenGL_4:画一个长方形
#include #include #include const char *vertexShaderSource ="#version 330 core\n""layout (location = 0) in vec3 aPos;\n""void main(){\n" "gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0f);\n"原创 2017-10-15 23:33:28 · 2640 阅读 · 0 评论 -
OpenGL_3:画一个三角形
#include #include #include const unsigned int SCR_WIDTH = 800;const unsigned int SCR_HEIGHT = 600;/** * 我们需要做的第一件事是用着色器语言GLSL(OpenGL Shading Language)编写顶点着色器, * 然后编译这个着色器,这样我们就可以在程序中使用它了 *原创 2017-10-15 10:57:17 · 312 阅读 · 0 评论 -
OpenGL_5:画两个三角形
#include #include #include const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main(){\n" "原创 2017-10-16 01:12:17 · 1068 阅读 · 0 评论 -
OpenGL_6:用两个VBO和VAO分别画2个三角形
#include #include #include const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main(){\n" "原创 2017-10-16 21:21:26 · 3801 阅读 · 0 评论 -
树的算法_1,并查集
#include //元素个数#define ELEM_C 10//开始先假设每一个接点都是单独的一棵树,下标(节点)对应的值为它的父节点//例如:节点0的根节点就是其本身:elems[0] == 0、elems[4] == 4int elems[ELEM_C] = {0,1,2,3,4,5,6,7,8,9};//得到当前节点的根节点int getRoot(int elem){原创 2017-09-22 01:08:21 · 231 阅读 · 0 评论 -
cmake使用示例与整理总结
cmake中一些预定义变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMAKE_INCLUDE_PATH 环境变量,非cmake变量CMAKE_LIBRARY_PATH 环境变量CMAKE_CURRENT_SOURCE_DIR 当前处理的C转载 2017-09-30 11:48:31 · 236 阅读 · 0 评论 -
OpenGL_10:加入颜色属性来绘制三色三角形
#include #include #include const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" // 位置变量的属性位置值为 0 "layout (loca原创 2017-10-18 00:34:20 · 1389 阅读 · 0 评论 -
C进阶_1:结构体所占用的字节数
结构体的数据类型的有点多我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧。 格式一: 12345601.struct tagPhone02.{03. char A;04. int B;05. short C;06.}Ph原创 2017-09-24 22:47:41 · 576 阅读 · 0 评论 -
排序算法_1,冒泡排序
#include #include //时间复杂度为O(N^2)//冒泡法从小到大排序void main() { int *a; int numCount; int i, j, temp; //输入需要排序数字的个数 printf("input numCount:\n"); scanf("%d", &numCount); //动态生原创 2017-09-18 21:13:22 · 360 阅读 · 0 评论 -
排序算法_0,桶排序
#include #define A_LEN 10static int a[A_LEN];void main() { int i, j, temp, numCount; //要输入的数字个数 scanf("%d", &numCount); for (i = 0; i ; ++i) { scanf("%d", &temp);原创 2017-09-17 13:29:34 · 227 阅读 · 0 评论 -
排序算法_2,快速排序
#include #include //快速排序 平均时间复杂度O(NlogN) 最差时间复杂度为O(N^2)//从小到大排序void quickSort(int *a, int len){ int temp; //数组头尾的两个下标 int head=0, tail=len-1; if (head > tail) retur原创 2017-09-18 21:48:10 · 433 阅读 · 0 评论 -
排序算法_3,堆排序
#include int h[15] = {0,99,5,36,7,22,17,46,12,2,19,25,28,1,92}; //堆数组,h[0]不在计算范围内,不是堆里的元素,请忽略int n = 14; //堆元素个数//交换两个数void swap(int *x, int *y){ int t; t = *x; *x = *y; *y原创 2017-09-20 21:39:37 · 214 阅读 · 0 评论 -
排序算法_3,堆排序2
#include int h[15] = {0,99,5,36,7,22,17,46,12,2,19,25,28,1,92}; //堆数组,h[0]不在计算范围内,不是堆里的元素,请忽略int n = 14; //堆元素个数//两数交换函数void swap(int *x, int *y){ int t; t = *x; *x = *y; *y原创 2017-09-21 01:22:27 · 184 阅读 · 0 评论 -
OpenGL_8:着色器之间的变量传递
#include #include #include const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "out vec4 vertexColor;" //为片段着色器指定一个颜色输出原创 2017-10-17 21:30:58 · 904 阅读 · 0 评论 -
OpenGL_9:着色器之uniform变量
#include #include #include #include const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main(){\n"原创 2017-10-17 23:42:48 · 1114 阅读 · 0 评论 -
OpenGL_7:用两个片段着色器和着色器程序分别画2个不同颜色的三角形
#include #include #include const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main(){\n" "原创 2017-10-16 21:32:12 · 3406 阅读 · 0 评论