技术标签: 笔记
直接在项目文件夹内配置,不需要到处复制的方法。
关于 MinGW 的 配置跳过,可以参考https://blog.csdn.net/zwx19921215/article/details/83306119
配置 OpenGL 步骤:
project(OpenGL) #填你的项目名
include_directories(include)
link_directories(lib/x64)
set(CMAKE_C_STANDARD 14) #我选的是 C++14 版本
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
#测试
add_executable(main main.cpp) #前为编译完成后的exe文件名,随便写就行了, 后面是 cpp 源文件的相对路径
target_link_libraries(main libopengl32.a libfreeglut.a glu32.dll) #链接对应的库文件
测试代码:
#include <GL/glut.h>
GLsizei winWidth = 600, winHeight = 500;
GLubyte label[36] = {
'J', 'a', 'n', 'F', 'e', 'b', 'M', 'a', 'r',
'A', 'p', 'r', 'M', 'a', 'y', 'J', 'u', 'n',
'J', 'u', 'l', 'A', 'u', 'g', 'S', 'e', 'p',
'O', 'c', 't', 'N', 'o', 'v', 'D', 'e', 'c'};
GLint dataValue[12] = {
420, 342, 324, 310, 262, 185, 190, 196, 217, 240, 312, 438};
void initWindow(int argc, char* argv[]) {
glutInit(&argc, argv);
glutInitWindowSize(winWidth, winHeight);
glutInitWindowPosition(100, 100);
glutCreateWindow("P105");
}
void initBackground() {
glClearColor(1, 1, 1, 0);
glMatrixMode(GL_PROJECTION);
//glOrtho(0, winWidth, 0, winHeight, -1, 1);
gluOrtho2D(0, winWidth, 0, winHeight);
}
void lineGraph() {
GLint xRaster = 25, yRaster = 150;
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(0, 0, 1);
glBegin(GL_LINE_STRIP);
for (GLint k = 0; k < 12; k ++) {
glVertex2i(xRaster + k * 50, dataValue[k]);
}
glEnd();
glColor3d(1, 0, 0);
for (GLint k = 0; k < 12; k ++) {
glRasterPos2i(xRaster + k * 50, dataValue[k] - 4);
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, '*');
}
glColor3d(0, 0, 0);
xRaster = 20;
for (GLint month = 0; month < 12; month ++) {
glRasterPos2i(xRaster, yRaster);
for (GLint k = 3 * month; k < 3 * month + 3; k ++) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, label[k]);
}
xRaster += 50;
}
glFlush();
}
void barChart() {
GLint xRaster = 20, yRaster = 150;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1, 0, 0);
for (GLint k = 0; k < 12; k ++) {
glRecti(20 + k * 50, 165, 40 + k * 50, dataValue[k]);
}
glColor3d(0, 0, 0);
for (GLint month = 0; month < 12; month ++) {
glRasterPos2i(xRaster, yRaster);
for (GLint k = 3 * month; k < 3 * month + 3; k ++) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, label[k]);
}
xRaster += 50;
}
glFlush();
}
void winReshapeFcn(GLint newWidth, GLint newHeight) {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, (GLdouble)newWidth, 0, (GLdouble)newHeight, -1, 1);
glClear(GL_COLOR_BUFFER_BIT);
}
int main(int argc, char* argv[]) {
initWindow(argc, argv);
initBackground();
//glutDisplayFunc(lineGraph);
glutDisplayFunc(barChart);
glutReshapeFunc(winReshapeFcn);
glutMainLoop();
return 0;
}
生成以下结果:
文章浏览阅读1k次。一.Bootstrap简介1.什么是BootstrapBootstrap 是全球最受欢迎的前端组件库,用于开发响应式布局、移动设备优先的 WEB 项目。Bootstrap4 目前是 Bootstrap 的最新版本,是一套用于 HTML、CSS 和 JS 开发的开源工具集。2.Bootstrap的来源Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript开发的简洁、直观、强悍的前端开发框架,使得 W._bootstrap4的好处
文章浏览阅读264次。208 . 实现 Trie (前缀树)题目:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); // 返回 truetrie.insert(“app”);tr
文章浏览阅读6.6k次,点赞6次,收藏12次。(对于自然数N的阶乘,当N比较小时,可以32位整数int范围内准确表示 。例如12!=479001600<2147483647(231-1) 而20!=2432902008176640000<9223372036854775807(263-1)可以在64位整数long long int范围内准确表示 ,但是N取值更大时,N!只能使用浮点数计算,从而产生误差 )题目描述已知正整数N(N..._阶乘和高精度
文章浏览阅读638次。一.用到软件 1.FontCvtST.exe 2.U2C.exe 下载地址:https://i.cnblogs.com/Files.aspx二.转换1.新建文本文档,在文本文档中写入所需要用的字或词语,注意:根据用到的字或者词语,每个换行,方便后面使用,如下图2.将文本文档另存为UNICODE格式的新文本文档,备用;并将原文档再另存为UTF-8格式的新文..._st emwin修改字库
文章浏览阅读9.8k次,点赞4次,收藏4次。把.ico文件放在根目录下的static文件夹下,然后link标签引入 <link rel="shortcut icon" href="./static/favicon.ico">_vue项目页面左上角小图标怎么修改
文章浏览阅读1.5k次。V3应用层加密应用层透明加密技术俗称钩子透明加密技术。这种技术就是将两种技术(应用层API和Hook)组合而成的。通过windows的钩子技术,监控应用程序对文件的打开和保存,当打开文件时,先将密文转换后再让程序读入内存,保证程序读到的是明文,而在保存时,又将内存中的明文加密后再写入到磁盘中。应用层透明加密(钩子透明加密)技术与应用程序密切相关,它是通过监控应用程序的启动而启动的。V4驱动层加密基于windows的文件系统(过滤)驱动(IFS)技术,工作在windows的内核层。当应用程_ip-guard原理
文章浏览阅读722次。配置 路由 报错 'Switch' is not exported from 'react-router'.npm uninstall react-router-domnpm install [email protected]
文章浏览阅读1.1k次,点赞2次,收藏7次。ID:399899量化交易中,首先要弄好的就是选股。然后在才是买卖策略的制定。不同类型的策略,选股思路也不相同。俗话说得好,不管黑猫白猫,抓到老鼠的就是好猫。一个好的选股策略,往往在量化中是起较为关键的作用的。要实现程序化选股的话,数据又是一个前提。要有数据才能去实现编写程序。数据来源有很多,可以去爬取,也可以去股票交易网站下载。当然也有一些接口可以提供数据。常见的接口有tushare、baostock、akshare在这里我以一个简单的选股案例,为大家介绍一下使用tushare接口使用tush_tushare 选股
文章浏览阅读3.7k次,点赞2次,收藏10次。以下是测试项目目录一、配置modelconf/casbin_rbac_model.conf# 请求[request_definition]r = sub,obj,act# sub ——> 想要访问资源的用户角色(Subject)——请求实体# obj ——> 访问的资源(Object)# act ——> 访问的方法(Action: get、post...)# 策略(.csv文件p的格式,定义的每一行为policy rule;p,p2为policy rule的名字。)_gin 的权限校验
文章浏览阅读319次。例如,一个团队有20个人,其中有2个员工在共同做A业务,3个员工在共同做B业务,5个员工在共同做C业务,剩下10个员工在共同做D业务,那么可以基于业务相关性将这20个员工分成A业务研讨组、B业务研讨组、C业务研讨组和D业务研讨组,这样,在步骤2目标众筹时,就以A、B、C、D 4个研讨小组为单位,邀请其输出3~5个团队OKR,然后团队主管再基于所有小组贡献的团队OKR进行投票表决,形成团队的OKR。通过这种方式,大大增强了团队成员对团队目标的共识程度,团队目标真正变成了大家共同的目标,而不再只是主管的目标。_运营okr的制定与实施
文章浏览阅读3.8k次,点赞3次,收藏21次。ssm框架搭建静态资源访问不到的问题ssm框架中静态资源的访问不到解决方法静态资源访问报404解决办法原因:如果在web.xml中有对spring的DispatcherServlet请求url映射有如下配置 <servlet> <servlet-name>springmvc</servlet-name> <servlet-cla...
文章浏览阅读1.5w次,点赞33次,收藏210次。声明:本文部分文章取自于Java中关于二叉树详解_来学习的小张的博客-程序员宅基地_java 二叉树原理更多关于二叉树详情可以点击上面链接一:树形结构树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的节点,称为根节点,根节点没有前驱节点; 除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个_java二叉树