- 博客(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
328
原创 解决 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
1110
原创 渲染多边形和填充多边形
填充多边形:调整 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
420
原创 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
221
原创 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
80
原创 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
163
原创 二维图像到二维屏幕的显示,对应屏幕坐标
说明默认情况下,中心点在屏幕的中心,范围都是从[-1,1],所以物体的实际坐标映射到屏幕坐标需要一个转换过程,上文中描述到使用gluOrtho2D函数通过正投影,将物理坐标映射到屏幕坐标,但是坐标的原点在左下角,一般情况下,屏幕的原点都是从左上角开始,因此在上述的所有例子中,都需要重新计算Y轴的坐标,屏幕的高减去点Y轴分量。现在通过重新设置正射投影的左下角坐标和右上角的坐标,建立一一对应的关系,而不再需要进行任何的转换,类似于旋转相机,达到调整坐标系的作用代码#include <...
2021-08-31 11:06:26
301
原创 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
2930
原创 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
263
原创 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
835
原创 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
1422
原创 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
146
原创 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
2226
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
2638
原创 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
636
原创 路径规划算法研究
网址:http://algo2.iti.kit.edu/routeplanning.php开始进行路径规划算法的分析和研究,所有的研究都是针对该网站提供的论文,进行简单的学习分析,尽量使用简单的语言,提取核心思想网址:http://algo2.iti.kit.edu/schultes/hwy/utrecht.pdf在所有的描述中,不会提供任何的插图和相关的数学表达式,相关的参考资料,均可从提供的网址中搜索到当前使用的是欧洲的路网,作为道路的搜索模型,大约有1800万个节点,完全符合大型复
2021-07-07 17:52:02
249
原创 最大约数个数算法分析
最大约数个数算法分析实验问题描述正整数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
501
原创 最大约数问题(详细代码)
#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
178
原创 随机排列组合的输出
在算法的书本上描述了这样的一个问题:有3个白球,4个黑球,5个蓝球,请输出一共有多少种组合,与此同时,输出每一种组合的方式。这个问题,我一直都在思考,虽然我知道早已经有了答案。递归总是让我知道自己的蹩脚的逻辑。我的倔强的脾气让我一直都在研究,到底应该如何写这个递归的方程式。今天晚上写了一个模糊的算法,还只是一个不能实现的雏形。随机排列组合: m个红球 , n个白球, l个蓝球递归的函数如下:int list(m,n,l){ if(m>1) {...
2021-07-07 10:41:10
592
原创 多线程下解决最大约数个数问题的源代码
#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
90
原创 归并排序实现思路
归并排序使用分治法,使用递归,对集合进行切割,然后合并的过程。在其中使用了临时数组保存已经排序好的序列。在有些文章中,通过构建一个全局的临时数据,避免了每一次循环创建一个临时数组的方法,将排序的结果保存到临时数组中,然后在返回的时候,对当前的子序列重新赋值,当然不可避免的带来了元素的移动和赋值,但是避免了在大数据的情况下,多次new带来的分配耗时...
2021-07-06 15:03:26
171
原创 插入排序实现思路
一个非常典型的插入排序的例子:随机从桌子的卡片组上抽取一张,然后对比手头上已经排序好的牌,进行插入,时刻保持手头上的扑克牌是按照大小排列的。对于一个尚未排序的数组,从第二个数据开始,跟第一个数据进行排序,然后提取第三个数据跟之前已经排列好的序列,进行插入排序需要进行元素的偏移,当然在跟已经排序好的序列进行比较的时候,可以使用二分法进行查找...
2021-07-06 14:57:54
74
原创 奶牛问题的解决思路
问题一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。作者实现的时候应用了规律,而我这里实现的时候,绕开规律。从一个点子入手假设第一年一头奶牛,在N年后有多少个直系的奶牛这还不容易,4年后,每年生一头奶牛,N-3那么4年后的第一头奶牛,N年后有多少了直系的奶牛这还不容易,4年后,每年生一头奶牛,N-6intCaculCowNum(intnYear){//数组保存从第一年开始到150年,每年增加的奶牛...
2021-07-06 11:54:58
311
原创 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
816
原创 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
152
原创 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
5714
3
原创 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
495
原创 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
1264
原创 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
1925
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
492
原创 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
1390
原创 海康宇视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
657
原创 宇视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
2138
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
3162
原创 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
2962
原创 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
1248
原创 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
1293
原创 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
2258
原创 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
1169
原创 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
5204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人