自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 GLUT and OpenGL Utility Libraries

翻译:https://www.opengl.org/resources/libraries/开发者给OpenGL提供大量的窗口系统和接口库,与此同时,科学研究和高质量的库都建立在OpenGL之上GLUT说明GLUT是OpenGL实用库,为OpenGL的编程提供一个独立的系统窗口。GLUT为OpenGL提供一个简单的窗口应用程序接口。主要是为了更加简单的学习和探索OpenGL编程其他的一些类GLUT的窗口系统工具...

2021-09-13 14:53:48 246

原创 解决 Missing GL version

原因默认情况下需要调用函数glutCreateWindow("GLEW Test");指定一个OpenGL的context代码#include <GL/glew.h>#include <GL/glut.h>#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;#pragma comment(lib, "...

2021-09-13 14:44:31 804

原创 渲染多边形和填充多边形

填充多边形:调整 glBegin(GL_POLYGON);#include <windows.h>#include <gl/gl.h>#include <gl/glu.h>#include <gl/glut.h>//////////////////////////////////void myInit(){ glClearColor(1.0,1.0,1.0,0.0); glMatrixMode(GL_PROJE...

2021-09-08 17:15:24 353

原创 GLUT环境部署

1 是什么GLUT代表OpenGL应用工具包(OpenGL Utility Toolkit),是一个与窗口系统无关的工具包。它作为AUX库的功能更强的替代品,用于隐藏不同窗口系统API的复杂性。GLUT的子程序的前缀使用”glut”。再次详细说明要使用OpenGL进行绘图,首先必须有一个C/C++编译器,然后还必须安装了OpenGL的头文件和库。一般来说包括3个库及其相关文件(库文件.lib,头文件.h,动态链接库文件.dll):OpenGL--这个是基本的API工具,必须有的GLU--

2021-09-07 11:25:35 168

原创 3D 架设场景

指定视口glViewport指定投影变换glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(30, 1, 0.1, 50);指定视图变换glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0.0f, 0.0f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);gluPerspective(GLdoubl

2021-09-07 11:18:20 51

原创 gluOrtho2D与比例尺之间的关系

说明 gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT/2, 0.0);第三个参数取其一半,打点的Y坐标扩大了一倍.渲染直线的情况下,通过将第二参数和第三参数进行按比例尺放缩,实际上,可达到渲染图形缩放的效果。所以gluOrtho2D函数定义了屏幕坐标多少个单位像素表示投影矩阵的单位一代码#include <gl/glut.h>#include <Windows.h>#define WINDOWHEIGHT 4...

2021-08-31 11:10:46 124

原创 二维图像到二维屏幕的显示,对应屏幕坐标

说明默认情况下,中心点在屏幕的中心,范围都是从[-1,1],所以物体的实际坐标映射到屏幕坐标需要一个转换过程,上文中描述到使用gluOrtho2D函数通过正投影,将物理坐标映射到屏幕坐标,但是坐标的原点在左下角,一般情况下,屏幕的原点都是从左上角开始,因此在上述的所有例子中,都需要重新计算Y轴的坐标,屏幕的高减去点Y轴分量。现在通过重新设置正射投影的左下角坐标和右上角的坐标,建立一一对应的关系,而不再需要进行任何的转换,类似于旋转相机,达到调整坐标系的作用代码#include &lt...

2021-08-31 11:06:26 244

原创 OpenGL 渲染点GL_POINTS

场景渲染点的时候,如果尺寸比较大,实际上是一个矩形,需要采用反走样技术。使用反走样要启用混合操作, 确保显卡的反走样设置是用户控制或者打开的。代码#include <GL/glut.h>void myDisplay(void){ glClearColor(1.0f, 1.0f, 1.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_POINT_SMOOTH); glEnable(G...

2021-08-10 14:23:07 2710

原创 OpenGL 渲染直线

说明渲染线段的时候指定使用GL_LINES,而不是GL_LINE,线段的宽度跟点的尺寸一样,都有一个最大的限制,如果要渲染一条100像素宽的线段只能够采用渲染填充矩形的方式代码#include <windows.h>#include <gl/gl.h>#include <gl/glu.h>#include <gl/glut.h>//////////////////////////////////void myInit...

2021-08-10 14:13:37 217

原创 OpenGL 世界坐标系

世界坐标系在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定:窗口范围按此单位恰好是(-1,-1)到(1,1),即屏幕左下角坐标为(-1,-1),右上角坐标为(1,1)。这是采用了归一化的结果当前绘图坐标系是绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的。当用glTranslatef(),glScalef(), glRotatef()等对当...

2021-08-06 17:26:58 734

原创 OpenGL glMaterialfv材质设置 用例

说明如果非常清楚的知道物体的材质,并且能够在OpenGL的材质表中找到合乎要求的参数设置,就可以避免指定物体的颜色值,某些情况下,指定物体的渲染颜色,使得物体的实际效果大打折扣 { glPushMatrix(); glTranslatef(1.0, 0.0, 0.0); //黄铜 GLfloat mat_ambient[] = { 0.021500, 0.174500, 0.021500, 0.550000}; GLfloat mat_diff...

2021-08-06 17:19:30 1238

原创 OpenGL 贝塞罗曲线渲染

给定点P0,P1,线性贝兹曲线是这两点之间连线的点,方程式如下:B(t) = P0 + (P1 - P0)t t取[0,1];假设P0(x0, y0),P1(x1, y1), Pn((1-t)x0+tx1),(1-t)y0+ty1)1)通过点在直线上,斜率相等证明一阶贝塞罗曲线是一直线K(PnP0) = K(PnP1)这种方法相对简单2)通过P0P1两点根据点斜式求出直线的方程,然后将Pn点代入,同样可以证明,相对繁琐void myDisplay(){ glCl.

2021-07-16 09:47:51 107

原创 CMake Could NOT find OpenJPEG未解决

场景CMake 3.19.1编译OpenCV 4.4版本源码,提示出错Could NOT find OpenJPEG (minimal suitable version: 2.0, recommended version >= 2.3.1)

2021-07-09 10:35:47 1922 1

原创 Navicat Premium每个运行中运行多重查询出错解决方案

场景 MySQL5.6.44版本导出的数据库SQL脚本,通过Navicat Premium工具,鼠标右键点击数据库,运行SQL文件,执行出错,提示UnFinished,但是并没有提示任何错误信息解决方案 1) 将SQL脚本内容拷贝复制到新建查询执行成功 2)去掉勾选遇到错误继续(避免隐藏错误),去掉勾选每个运行中运行多重查询(当启用该选项时,Navicat 会一次运行多句 SQL 语句(executing multiple SQL statements...

2021-07-08 15:42:37 2216

原创 MySQL5.6.44 1010-删除数据库时出错解决方案

问题Navicat删除本数据库时却删除失败,系统提示出现了错误,错误代码为:1010-删除数据库时出错(无法rmdir/testdb,错误号:39)解决过程1)查找数据库的存储位置mysql> show variables like '%datadir%'2)进入存储位置,发现testdb数据库下还有一些文件无法删除ACT_EVT_LOG.frm ACT_HI_COMMENT.frm ACT_HI_VARINST.frm ACT_PROCDE...

2021-07-08 11:39:43 526

原创 路径规划算法研究

网址:http://algo2.iti.kit.edu/routeplanning.php开始进行路径规划算法的分析和研究,所有的研究都是针对该网站提供的论文,进行简单的学习分析,尽量使用简单的语言,提取核心思想网址:http://algo2.iti.kit.edu/schultes/hwy/utrecht.pdf在所有的描述中,不会提供任何的插图和相关的数学表达式,相关的参考资料,均可从提供的网址中搜索到当前使用的是欧洲的路网,作为道路的搜索模型,大约有1800万个节点,完全符合大型复

2021-07-07 17:52:02 215

原创 最大约数个数算法分析

最大约数个数算法分析实验问题描述正整数x的约数是能整除x的正整数。正整数x的约数个数记为div(x),例如,1,2,5,10都是正整数10的约数,且div(10)=4.设a和b是2个正整数,a<=b,找出a和b当中约数个数最多的数x,输出其约数个数值。实验目的本次实验通过利用数论知识,建立素数表,弥补累除法在时间复杂度上的缺陷,同时又结合累除法在小范围内能够计算出最准确的约数个数的特性,在时间复杂度上获得最大的优化。实验知识准备过程累除法的基本思想:计算正整数a...

2021-07-07 13:50:16 434

原创 最大约数问题(详细代码)

#include<iostream>using namespace std;int Simple_count(int a,int b);//累除法int numlist(int a[])//建立素数表{int flag=0;//确定数组当前存储素数的位置bool repeat=true;//循环标志位设定int j=0;for(int i=2;i<10000;i++)//将通过设定i的上限来扩大搜索的范围{while(repeat){...

2021-07-07 11:04:43 147

原创 随机排列组合的输出

在算法的书本上描述了这样的一个问题:有3个白球,4个黑球,5个蓝球,请输出一共有多少种组合,与此同时,输出每一种组合的方式。这个问题,我一直都在思考,虽然我知道早已经有了答案。递归总是让我知道自己的蹩脚的逻辑。我的倔强的脾气让我一直都在研究,到底应该如何写这个递归的方程式。今天晚上写了一个模糊的算法,还只是一个不能实现的雏形。随机排列组合: m个红球 , n个白球, l个蓝球递归的函数如下:int list(m,n,l){ if(m>1) {...

2021-07-07 10:41:10 473

原创 多线程下解决最大约数个数问题的源代码

#include<iostream>#include<windows.h>#include<time.h>using namespace std;//声明素数表的数组为全局变量int a[10000]={2,0};//素数表初始化int flagnumber=0;//记录素数表中的个数int minnumber=0;int maxnumber=0;//一般来说需要声明将要调用的函数int Simple_count(int a,int b);//累除法

2021-07-07 10:34:47 65

原创 归并排序实现思路

归并排序使用分治法,使用递归,对集合进行切割,然后合并的过程。在其中使用了临时数组保存已经排序好的序列。在有些文章中,通过构建一个全局的临时数据,避免了每一次循环创建一个临时数组的方法,将排序的结果保存到临时数组中,然后在返回的时候,对当前的子序列重新赋值,当然不可避免的带来了元素的移动和赋值,但是避免了在大数据的情况下,多次new带来的分配耗时...

2021-07-06 15:03:26 117

原创 插入排序实现思路

一个非常典型的插入排序的例子:随机从桌子的卡片组上抽取一张,然后对比手头上已经排序好的牌,进行插入,时刻保持手头上的扑克牌是按照大小排列的。对于一个尚未排序的数组,从第二个数据开始,跟第一个数据进行排序,然后提取第三个数据跟之前已经排列好的序列,进行插入排序需要进行元素的偏移,当然在跟已经排序好的序列进行比较的时候,可以使用二分法进行查找...

2021-07-06 14:57:54 47

原创 奶牛问题的解决思路

问题一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。作者实现的时候应用了规律,而我这里实现的时候,绕开规律。从一个点子入手假设第一年一头奶牛,在N年后有多少个直系的奶牛这还不容易,4年后,每年生一头奶牛,N-3那么4年后的第一头奶牛,N年后有多少了直系的奶牛这还不容易,4年后,每年生一头奶牛,N-6intCaculCowNum(intnYear){//数组保存从第一年开始到150年,每年增加的奶牛...

2021-07-06 11:54:58 236

原创 Wireshark 网络抓包工具

1)捕获回环包(本地127.0.0.1之间的通信包)说明默认情况下安装的Wireshark软件,无法捕获回环包(本地127.0.0.1之间的通信包),需要安装Npcap组件包。Npcap安装过程中会提示卸载WinPcap,按照操作点击确定卸载就行下载Npcap下载路径:Npcap: Windows Packet Capture Library & Driver (nmap.org)下载文件:Npcap 1.31 installer部署环境:Win10 + Wireshark32_2.4.

2021-07-06 09:51:38 521

原创 Unsupported major.minor version 52解决方案

场景>java -jar data-sdk-bms-demo.jarException in thread "main" java.lang.UnsupportedClassVersionError: com/hikvision/bms/TestDemo : Unsupported major.minor version 52.0解决方案更新jdk到1.8.0_161版本。...

2021-07-06 09:31:54 132

原创 could not open Java\jre7\lib\amd64\jvm.cfg解决方案

场景更新jdk1.7.0_15到jdk1.8.0_161。修改环境变量指向下载的安装包之后,执行java指令,提示如下:C:\Users\admin>java -versionError: could not open `C:\Program Files\Java\jre7\lib\amd64\jvm.cfg'原因之前采用的是jdk1.7.0_15.msi进行jdk的安装,在安装时会把java命令放到C:/windo...

2021-07-06 09:28:48 4952 2

原创 Tomcat服务使用的一些常识

1)部署文件说明tomcat9.exe是 windows 服务的运行程序,相当于运行startup.battomcat9w.exe是图形化界面程序,用于配置和监视 tomcat 的服务service.bat是Tomcat服务安装的脚本(service install/remove tomcat)catalina.bat是Tomcat启动的配置脚本2)如何启动tomcat1startup.bat2D:\Cloudvos\WebServer\tomcat\apache-tomc...

2021-07-05 10:00:04 425

原创 Tomcat崩溃kernel: java invoked oom-killer: gfp_mask解决方案

场景Jan 16 03:03:57 host-172-16-61-102 vm-agent: network-posix.c GetIpv4VifIp 1201 : failed to GetIpv4VifGatewayJan 16 03:03:57 host-172-16-61-102 vm-agent: popen errorJan 16 03:03:58 host-172-16-61-102 vm-agent: popen errorJan 16 03:03:58 host-172-16-6

2021-07-05 09:59:13 1048

原创 Cannot find /etc/bin/setclasspath.sh解决方案

场景配置Tomcat作为服务启动创建软连接ln -s /opt/web/apache-tomcat-8.5.41/bin/catalina.sh /etc/init.d/tomcat添加开机启动 chkconfig --add tomcat手动启动测试如下:[root@localhost bin]# service tomcat startCannot find /etc/bin/setclasspath.shThis file is needed to run...

2021-07-05 09:58:13 1645 2

原创 MP4:文件类型mp42转码方案

采用VLC进行转码点击媒体,下拉菜单选择:转换/保存(R)Tab文件页面,添加视频源点击转换(O)/保存按钮,配置文件中选择Video - H.264 + MP3(MP4)点击浏览,选择文件夹,输入文件名称知识扩展:The brand ‘mp41’ is defined as identifying version 1 of this specification (ISO/IEC 14496-1:2001), and the brand ‘mp42’ identifies this

2021-07-02 16:37:49 354

原创 MP4:文件格式类型mp42播放解决方案

场景MP4文件格式,通过mp4info工具,分析出ftyp:00 00 00 18 66 74 79 70 6D 70 34 32 00 00 00 00 ,说明包含文件类型mp42(6D 70 34 32)。通过ffplay播放失败,出现竖状条纹画面,ffmpeg分析数据失败如何播放1)Windows自带播放播放器Windows Media Player2)MPC-HC3)VLC media player (输入/编解...

2021-07-02 16:32:01 1123

原创 海康宇视SDK头文件冲突error C2059: 语法错误:“常量”解决方案

场景添加海康,宇视SDK对接的头文件和库文件,编译出错提示error C2059: 语法错误:“常量”。显示宇视SDK头文件NetDEVSDK.h中宏定义异常typedef enum tagNETDEV_PASSIVEDECODE_CMD{PASSIVE_DEC_PAUSE = 1, /* 被动解码暂停(仅文件流有效) */PASSIVE_DEC_RESUME = 2, /* 恢复被动解码(仅文件流有效) */PASSIVE_DEC_FAST = 3,...

2021-07-02 09:41:59 517

原创 宇视SDK对接记录过程

1)NETDEV_Login函数登陆端口一般情况下是80,也有81的情况,因此最好不要硬编码2)SDK跟服务器之间的通信协议通过抓拍分析,采用的是ONVIF协议进行通信3)连接采用的是短链接,一般查询结束,下一次查询采用的端口是不一样的4)SDK没有主动关闭短链接,如果频繁查询连接,会产生大量的TIME_WAIT,耗尽系统的端口资源5)取流端口是554,非常类似于通过ONVIF进行设备信息交互,RTSP取流方式6)NETDEV_Login登陆的接口耗时比较久,大概1秒

2021-07-02 09:29:00 1696 1

原创 宇视摄像机 SDK取流失败解决方案

场景相同的产品型号:HIC5641,通过2.1和2.5版本的SDK demo都是同样的效果,登陆设备成功,点击异常摄像机的时候,没有任何打印正常播放软件版本:QIPC-B6301.7.2.201010异常播放软件版本:QIPC-B6301.6.11.200810解决方案1)通过其他方式取流,例如IMOS或者RTSP取流2)联系厂商升级摄像机软件版本...

2021-07-02 09:21:50 2583

原创 MySQL5.6.44 [Err] 1067 - Invalid default value for create_date解决方案

场景[Err] 1067 - Invalid default value for 'create_date',对于创建表种的语句如下:`create_date`timestamp(0)NOTNULLONUPDATECURRENT_TIMESTAMP(0)COMMENT'创建时间'解决MySQL5.6.44以及MySQL5.7.27timestamp设定默认值规则改变,不能为”0000 00-00 00:00:00”解决方法:...

2021-06-29 17:44:24 2664

原创 MySQL:dependent on columns in GROUP BY clause解决方案

MySQL版本:5.7.30 5.6.44问题1)SELECT list is not in GROUP BY clause and contains nonaggregated column \\'testdb.testtables.plat_id\\' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_gro...

2021-06-29 17:20:07 1077

原创 RabbitMQ:rabbitmq.config(not found)解决方案

景CentOS7.6启动RabbitMQ,登陆WEB网页,提示Config file /opt/rabbitmq_server-3.6.10/etc/rabbitmq/rabbitmq.config (not found)解决在windows平台找到安装目录,拷贝配置文件到对应的目录:cd /opt/rabbitmq.config.example /opt/rabbitmq_server-3.6.10/etc/rabbitmq/rabbitmq.config...

2021-06-29 10:45:08 986

原创 RabbitMQ:Erlang distribution failed解决方案

前言系统版本:CentOS Linux release 7.7.1908 (Core)通过rabbitmqctl add_user admin 12345指令,给rabbitmq添加用户提示出错:[root@localhost perl]# rabbitmqctl add_user admin 12345Error: unable to connect to node rabbit@localhost: nodedownDIAGNOSTICS=======...

2021-06-29 10:43:10 1819

原创 RabbitMQ 无法正常停止问题未解决

问题ERROR: node with name "rabbit" already running on "localhost"[root@localhost init.d]# rabbitmqctl stopStopping and halting node rabbit@localhostError: unable to connect to node rabbit@localhost: nodedownERROR: node with name "rabbit" alre...

2021-06-29 09:46:46 929

原创 RabbitMQ erl: command not found解决方案

言系统环境:CentOS Linux release 7.7.1908 (Core)要求将RabbitMQ注册成开机服务程序创建软连接 ln -s/opt/rabbitmq_server-3.6.10/sbin/rabbitmq-server /etc/init.d/rabbitmq-server创建软连接 ln -s/opt/rabbitmq_server-3.6.10/sbin/rabbitmq-env /etc/init.d/rabbitmq...

2021-06-29 09:23:59 4667

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除