OpenGL 用三角形扇绘制圆 报错GLUT Fatal Error: pixel format with necessary capabilities not 5C

#include
#include

#include

int g_width = 800;
int g_height = 600;

int nStep = 200;
const GLfloat a = 0.6f, b = 0.3f;
const GLfloat Pi = 3.1415926536f;
GLShaderManager shaderManager;
GLBatch pointBatch;
GLBatch lineBatch;
GLBatch lineStripBatch;
GLBatch lineLoopBatch;
GLBatch triangleBatch;
GLBatch triangleStripBatch;
GLBatch triangleFanBatch;

void initialize();
void uninitialize();
void display_func(void);
void reshape_func(int w, int h);
void key_func(unsigned char key, int x, int y);
void idle_func();
void initialize()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glClearDepth(1.0);

shaderManager.InitializeStockShaders();

GLfloat vCoast[24][3] = { {2.80,1.20,0.0},{2.0,1.20,0.0},
{2.0,1.08,0.0},{2.0,1.08,0.0},
{0.0,0.80,0.0},{-.40,0.40,0.0},
{-.48,0.2,0.0},{-.40,0.0,0.0},
{-.60,-.40,0.0},{-.80,-.80,0.0},
{-.80,-1.4,0.0},{-.40,-1.60,0.0},
{0.0,-1.20,0.0},{.2,-.80,0.0},
{.48,-.40,0.0},{.2,-.80,0.0},
{.48,.20,0.0},{.80,.40,0.0},
{1.20,.80,0.0},{1.60,.60,0.0},
{2.0,.60,0.0},{2.2,.80,0.0},
{2.40,1.0,0.0},{2.80,1.0,0.0}
};
for (int i = 0; i < 24; i++)
{
    vCoast[i][0] *= 0.3;
    vCoast[i][1] *= 0.3;
    vCoast[i][2] *= 0.3;
}
//Load point batch
pointBatch.Begin(GL_POINT, 24);
pointBatch.CopyVertexData3f(vCoast);
pointBatch.End();

//Load as a bunch of line segments
lineBatch.Begin(GL_LINES, 24);
lineBatch.CopyVertexData3f(vCoast);
lineBatch.End();

//Load as a single line segment
lineStripBatch.Begin(GL_LINE_STRIP, 24);
lineStripBatch.CopyVertexData3f(vCoast);
lineStripBatch.End();

//Single line,connect first and last points
lineLoopBatch.Begin(GL_LINE_LOOP, 24);
lineLoopBatch.CopyVertexData3f(vCoast);
lineLoopBatch.End();


GLfloat vPyramid[16][3] = {0};
float angle = 0;
int i = 0;
for (; angle < (2.0f*Pi)&&i<16; angle += (Pi / 8.0f),i++)
{
    int x = 50.0f*sin(angle);
    int y = 50.f*cos(angle);
    vPyramid[i][1] = x;
    vPyramid[i][2] = y;
    vPyramid[i][3] = 0.0f;
}
//Load as a triangle fan
triangleFanBatch.Begin(GL_TRIANGLE_FAN,16);
triangleFanBatch.CopyVertexData3f(vPyramid);
triangleFanBatch.End();

}
void display_func(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
void idle_func()
{
glutPostRedisplay();
}
void reshape_func(int w, int h)
{
glViewport(0, 0, w, h);
}
void key_func(unsigned char key, int x, int y)
{
switch (key) {
case 49:
case 50:
glLineWidth(2.0f);
lineStripBatch.Draw();
glLineWidth(1.0f);
break;
case 51:
glLineWidth(2.0f);
lineLoopBatch.Draw();
glLineWidth(1.0f);
break;
case 52:
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
triangleBatch.Draw();
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
break;
case 53:
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
triangleFanBatch.Draw();
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
break;
case 54:
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
triangleStripBatch.Draw();
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
break;
}
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitWindowSize(g_width, g_height);
glutInitDisplayMode(GLUT_DEPTH || GLUT_DOUBLE || GLUT_RGB);
glutCreateWindow("MyShapes");
initialize();
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: $s\n", glewGetErrorString(err));
return 1;
}
glutDisplayFunc(display_func);
glutReshapeFunc(reshape_func);
glutKeyboardFunc(key_func);
glutIdleFunc(idle_func);
glutMainLoop();
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Win10下Qt+opengl使用报错,说找不到lgl、lglu、lglut,(已经包含了glu.h和glut.h)怎么解决啊?
![图片说明](https://img-ask.csdn.net/upload/201912/23/1577107133_517844.png)
opengl宝典示例代码在vs2017上各种报错,求帮助,快哭了。。。
我把opengl超级宝典第五版的第一个示例代码放到我的工程里,vs用的2017的,freeglut2.6,gltools包含了glew的情况下,还是各种报错,几乎一行一到两个错,编译都通不过,小白求各位过来人指点一下,想尽快先入个门,下面是我放进来的代码和报错,大家看看为什么,是环境的问题吗? #include <GLTools.h> #include <GLShaderManager.h> #ifdef __APPLE #include <glut/glut.h> #else #define FREEGLUT_STATIC #include <GL/glut.h> #endif // __APPLE #include <GL/glut.h> #include "stdafx.h" GLBatch triangleBatch; GLShaderManager shaderManager; //62 CHAPTER 2 Getting Started //04_0321712617_ch02.qxd 6/21/10 11:35 AM Page 62 void ChangeSize(int w, int h) { glViewport(0, 0, w, h); } void SetupRC() { glClearColor(0.0f, 0.0f, 1.0f, 1.0f); shaderManager.InitializeStockShaders(); GLfloat vVerts[] = { -0.5f,0.0f,0.0f, 0.5f,0.0f,0.0f, 0.0f,0.5f,0.0f }; triangleBatch.Begin(GL_TRIANGLES, 3); triangleBatch.CopyVertexData3f(vVerts); triangleBatch.End(); } void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); GLfloat vRed[] = { 1.0f,0.0f,0.0f,1.0f }; shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed); triangleBatch.Draw(); glutSwapBuffers(); } int main(int argc, char* argv[]) { gltSetWorkingDirectory(argv[0]); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); glutInitWindowSize(800, 600); glutCreateWindow("Triangle"); glutReshapeFunc(ChangeSize); glutDisplayFunc(RenderScene); GLenum err = glewInit(); if (GLEW_OK != err) { fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err)); return 1; } SetupRC(); glutMainLoop(); return 0; } ``` 还有就是我没太懂作者这两行什么鬼 62 CHAPTER 2 Getting Started 04_0321712617_ch02.qxd 6/21/10 11:35 AM Page 62 ``` 下面是报错信息,太多了(捂眼) ![图片说明](https://img-ask.csdn.net/upload/201907/09/1562677843_255165.png) ![图片说明](https://img-ask.csdn.net/upload/201907/09/1562677855_650720.png) 最后就是这么多报错,应该就不是代码的问题,是不是有什么地方缺了什么东西啊,为什么写的时候不报错,一编译就全出来了呢,哭了。。
Opengl在VS2015下一直报错
![图片说明](https://img-ask.csdn.net/upload/201705/26/1495780873_462856.png) 代码// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include"stdlib.h" #include"glut.h" #pragma comment ( lib , "glut32.lib" ) GLfloat angle = 0.0f; GLfloat multiply = 0.0f; void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(90.0f, 1.0f, 1.0f, 20.0f); glLoadIdentity(); gluLookAt(0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); { //设置一个点光源 GLfloat light_position[] = { 0.5f,0.0f,0.0f,1.0f };//(xyzw)w为1时代表点光源,0时代表方向光源 GLfloat light_ambient[] = { 0.5f,0.5f,0.5f,1.0f };//(0001) GLfloat light_diffuse[] = { 1.0f,1.0f,1.0f,1.0f };//(1111) GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };//(1111) glLightfv(GL_LIGHT0, GL_POSITION, light_position); glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);//光源环境光强值 glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);//光源漫反射强值 glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);//光源镜面反射强值 glEnable(GL_LIGHT0);//打开该光源 glEnable(GL_LIGHTING);//打开光照 } { glRotatef(angle, 0.0f, 1.0f, 0.0f); glTranslatef(0.0f, 0.0f, 0.6f); //平移 glScaled(multiply, multiply, multiply); //缩放 glutSolidSphere(0.2, 50, 50); } glutSwapBuffers(); } void rotateAndzoom(void) //旋转和缩放 { angle += 1.0f; if (angle >= 360.0f) angle = 0.0f; display(); //设置旋转 multiply += 0.01f; if (multiply >= 2.0f) // multiply -= 0.01f; //if (multiply <= 1.0f) multiply = 1.0f; display(); //设置缩放 } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutInitWindowPosition(400, 50); glutInitWindowSize(800, 800); glutCreateWindow("立体"); glutDisplayFunc(&display); glutIdleFunc(&rotateAndzoom);//旋转 glutMainLoop();//调用该函数启动程序,所有以创建的窗口将会显示 return 0; } 求大神帮忙看看
OpenGL配置完环境之后出现了这样的问题该如何解决呀?
最近初学计算机图形学,用的是c++和Visual Studio,按照老师课上给的方式配置了OpenGL的环境,也就是将glut32.h放入了GL.h所在的文件夹,将glut32.dll放在了opengl32.dll所在的文件夹,将glut32.lib放在了opengl32.lib所在文件夹,在这之后我把课件上的程序敲了上去运行的时候出现了如图所示的问题,而别的同学都能正确地画出一个白色的方块,请问该如何解决呢?![图片说明](https://img-ask.csdn.net/upload/201711/10/1510324486_827131.png) 弹出的窗口上面写的是GLUT:Fatal Error in (unamed):SetPixelFormat failed during window create
使用glut库遇到问题,无法加载OPENGL.dll
下面的图是我的电脑硬件配置和系统配置 ![图片说明](https://img-ask.csdn.net/upload/201604/30/1461985969_784009.png) ![图片说明](https://img-ask.csdn.net/upload/201604/30/1461985977_327408.png) 在官网下载了glut3.7betadll之后,运行程序报错如下: ![图片说明](https://img-ask.csdn.net/upload/201604/30/1461986043_494696.png) 于是用在的glut3.7 for win32 ,使用VS2010命令行编译后,生成的glut32.lib glut32.dll替换了preCompile的文件,出现的同意的错误。 百度,安装网友的说法,把lib dll 放在VC\bin下面,放在system32 sysWOW64 都试过了,报错依旧。 于是运行Qt5.6内置的Ogl历程, cascad+Win32窗口的搭建,都可以运行,说明应该不是系统的opengl32的问题吧。。 。 把glut,lib, glut32,lib颠倒顺序,程序在glClearColor发生中断,而glut开头的函数却顺利加载。 烦请群众帮忙,现在想把gl基本功能学一学。最简单的例子代码如下 ![图片说明](https://img-ask.csdn.net/upload/201604/30/1461986463_95394.png)
OpenGL编程是时,使用auxDIBImageLoad函数会报错
编译器用的是vs2015, glut.h,glaux.h,glut.dll,glaux.dll,glut.lib,glaux.lib 等文件已经配置到相应的位置。但使用auxDIBImageLoad函数时,报错"无法解析的外部命令"。试了很多方法,仍然无法解决。真不知道什么缘故,求大神指点!
我想用opengl绘制一个椭圆,椭圆内部有填充色,但是不知道怎么填充颜色,请求帮助。
#include<windows.h> #include<math.h> #include <gl/Glut.h> #include <iostream> using namespace std; void myDisplay(void); void myInit(void); void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top); void drawEllipse(GLint W, GLint H, GLdouble clr[3]); const GLint screenWidth = 640; const GLint screenHeight = 640; const GLdouble PI = 3.1415926; static GLint size = 300; int main(int argc, char ** argv){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(screenWidth,screenHeight); glutInitWindowPosition(100,100); glutCreateWindow("Ellipse"); glutDisplayFunc(myDisplay); myInit(); glutMainLoop(); return 0; } void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top){ glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(left,right,botton,top); } void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); setWindow(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight); GLdouble color [3] = {0.0f,0.0f,0.0f};//填充黑颜色 drawEllipse(250,180,color); GLdouble color2 [3] = {1.0f,1.0f,1.0f};//填充白颜色 drawEllipse(170,170,color2); GLdouble color3 [3] = {0.0f,0.0f,0.0f};//填充黑颜色 drawEllipse(160,100,color3); GLdouble color4 [3] = {1.0f,1.0f,1.0f};//填充白颜色 drawEllipse(90,90,color4); } void drawEllipse(GLint W, GLint H, GLdouble clr[3]){ glColor3f(clr[0],clr[1],clr[2]); glBegin(GL_LINE_LOOP); for (GLdouble i = 0.0; i< 2*PI ; i += 0.01 ) { glVertex3d(310+W * cos(i), 310+H * sin(i)); } glEnd(); glFlush(); } void myInit(void){ glClearColor(1.0,1.0,1.0,0.0); glColor3f(0.0f, 0.0f, 0.0f); glLineWidth(2.0); glPointSize(1.0); }
OpenGL的glut库是不是已经包含了gl和glu等库?
初学opengl, 很多不知道。VS2015是否已经自带了opengl的核心库gl?在网上下了glut库,配置好了也能进行图形编程。这是不是说明glut库已经集成了gl库?在编程时,是不是只要写#include<glut.h>,不用写#include<gl.h>也可以?
文件操作,我将文件操作部分的代码放在,myDisplay函数内部就没有问题了。。这是为什么
F:\WORK\opengl test temp\dashBoard.cpp(8) : error C2501: 'fp' : missing storage-class or type specifiers F:\WORK\opengl test temp\dashBoard.cpp(8) : error C2040: 'fp' : 'int' differs in levels of indirection from 'struct _iobuf *' F:\WORK\opengl test temp\dashBoard.cpp(8) : error C2440: 'initializing' : cannot convert from 'struct _iobuf *' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast F:\WORK\opengl test temp\dashBoard.cpp(10) : error C2143: syntax error : missing ';' before 'if' F:\WORK\opengl test temp\dashBoard.cpp(14) : error C2143: syntax error : missing ';' before 'if' F:\WORK\opengl test temp\dashBoard.cpp(18) : error C2143: syntax error : missing ';' before 'if' F:\WORK\opengl test temp\dashBoard.cpp(22) : error C2501: 'fclose' : missing storage-class or type specifiers F:\WORK\opengl test temp\dashBoard.cpp(22) : error C2373: 'fclose' : redefinition; different type modifiers d:\program files\microsoft visual studio\vc98\include\stdio.h(285) : see declaration of 'fclose' F:\WORK\opengl test temp\dashBoard.cpp(22) : error C2440: 'initializing' : cannot convert from 'struct _iobuf *' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast 执行 cl.exe 时出错. instrument board.exe - 1 error(s), 0 warning(s) #include <glut.h> #include <stdio.h> #include <stdlib.h> static GLubyte Mask[128]; FILE *fp; fp = fopen("mask.bmp", "rb"); if( !fp ) exit(0); if( fseek(fp, -(int)sizeof(Mask), SEEK_END) ) exit(0); if( !fread(Mask, sizeof(Mask), 1, fp) ) exit(0); fclose(fp); void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_POLYGON_STIPPLE); glPolygonStipple(Mask); glRectf(-0.5f, -0.5f, 0.0f, 0.0f); // 在左下方绘制一个有镂空效果的正方形 glDisable(GL_POLYGON_STIPPLE); glRectf(0.0f, 0.0f, 0.5f, 0.5f); // 在右上方绘制一个无镂空效果的正方形 glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow("第一个OpenGL程序"); glutDisplayFunc(&myDisplay); glutMainLoop(); return 0; }
OpenGL无法解析的外部符号 __iob,该符号在函数 _fgError 中被引用
正在学习OpenGL,之前将glut.h等都已经放到正确的位置了,现在用到一个新的库包含gltools.h,将相关库文件放到include文件目录下,编写了一个小程序测试一下,发现出现错误了,代码以及出错代码如下: #include "shared/gltools.h" //#include "glut.h" void RenderScene(void) { //用当前清除颜色清除窗口 glClear(GL_COLOR_BUFFER_BIT); //刷新绘图命令 glFlush(); } //设置渲染状态 void SetupRC() { glClearColor(0.0f,1.0f,1.0f,0.5f); } void main(int argc,char *argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA); glutCreateWindow("Simple"); glutDisplayFunc(RenderScene); SetupRC(); glutMainLoop(); } 错误提示: 1>simple.obj : error LNK2019: 无法解析的外部符号 "void __cdecl m3dMakePlanarShadowMatrix(float * const,float const * const,float const * const)" (?m3dMakePlanarShadowMatrix@@YAXQAMQBM1@Z),该符号在函数 "void __cdecl RenderScene(void)" (?RenderScene@@YAXXZ) 中被引用 1>freeglut_static.lib(freeglut_main.obj) : error LNK2019: 无法解析的外部符号 __iob,该符号在函数 _fgError 中被引用 1>freeglut_static.lib(freeglut_display.obj) : error LNK2001: 无法解析的外部符号 __iob 1>F:\OpenGL\OpenGLSuperBible4th\Debug\demo2_1.exe : fatal error LNK1120: 4 个无法解析的外部命令 不知道哪里出错了,各位大神求解释
如何使用Cmake构建OpenGL项目?用的CLion编辑器
最近在学OpenGL,下面的是一个简单的画线段程序,可以在VS2017上面运行,但VS有点卡,于是试着在CLion上面运行。 ``` #include <stdlib.h> #include <glut.h> void init(void) { glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 200.0, 0.0, 150.0); } void lineSegment(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0); glBegin(GL_LINES); glVertex2i(100, 0); glVertex2i(0, 75); glEnd(); glFlush(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 300); glutCreateWindow("测试"); init(); glutDisplayFunc(lineSegment); glutMainLoop(); } ``` CMakeList文件 ``` cmake_minimum_required(VERSION 3.8) project(learnOpenGL) set(CMAKE_CXX_STANDARD 11) include_directories(C:/glut) link_directories(C:/glut) #find_library(libsrc glut C:/glut) #message(${libsrc}) set(SOURCE_FILES main.cpp) add_executable(learnOpenGL ${SOURCE_FILES}) #target_link_libraries( learnOpenGL ${libsrc}) target_link_libraries( learnOpenGL glut) ``` Build报错,如下? ``` C:/PROGRA~1/DevCpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/glut/glut.lib when searching for -lglut C:/PROGRA~1/DevCpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/glut/glut.dll when searching for -lglut C:/PROGRA~1/DevCpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/glut/glut.lib when searching for -lglut C:/PROGRA~1/DevCpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/glut/glut.dll when searching for -lglut C:/PROGRA~1/DevCpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/glut\glut.lib when searching for -lglut C:/PROGRA~1/DevCpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lglut collect2.exe: error: ld returned 1 exit status mingw32-make.exe[3]: *** [learnOpenGL.exe] Error 1 CMakeFiles\learnOpenGL.dir\build.make:96: recipe for target 'learnOpenGL.exe' failed CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/learnOpenGL.dir/all' failed mingw32-make.exe[2]: *** [CMakeFiles/learnOpenGL.dir/all] Error 2 mingw32-make.exe[1]: *** [CMakeFiles/learnOpenGL.dir/rule] Error 2 CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/learnOpenGL.dir/rule' failed mingw32-make.exe: *** [learnOpenGL] Error 2 Makefile:117: recipe for target 'learnOpenGL' failed ``` 折腾两天了,无论百度还是google都没有很好的实例。
QOpenglWidget中使用glortho无法绘制出纹理图,在glut下可以
在QOpenglWidget中绘制图形,使用glm::ortho模式进行正交投影,发现图形无法显示。如下图所示,显示的是清屏的红色。 ![图片说明](https://img-ask.csdn.net/upload/201708/02/1501657156_246266.jpg) 相同的绘制代码使用glut绘制的窗体中,可以正常显示。如下图所示。 ![图片说明](https://img-ask.csdn.net/upload/201708/02/1501657223_321489.jpg) 以下贴出核心代码,请问可能什么原因? const GLfloat vertexVertices[] = { -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat textureVertices[] = { 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, }; void HozoHorizontalDrawer::InitDrawer() { InitShader();//加载shader source GenTextureArray();//创建纹理 glUniform1i(m_iYTextureUniform, 0); SetTextureEnvInitFlag(true); glUseProgram(m_nShaderProgram); glGenBuffers(2, m_nBufferArray); glBindBuffer(GL_ARRAY_BUFFER, m_nBufferArray[0]); glBufferData(GL_ARRAY_BUFFER, sizeof(vertexVertices), vertexVertices, GL_STATIC_DRAW); glVertexAttribPointer(eVertex, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(eVertex); glBindBuffer(GL_ARRAY_BUFFER, m_nBufferArray[1]); glBufferData(GL_ARRAY_BUFFER, sizeof(textureVertices), textureVertices, GL_STATIC_DRAW); glVertexAttribPointer(eTexture, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(eTexture); } void HozoHorizontalDrawer::Draw(float PlayerControlWidth, float PlayerControlHeight, tagTextureDescription panoramaFrame) { glClearColor(1.0f, 0.0f, 0.0f, 1.0f); glClearDepth(1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glShadeModel(GL_SMOOTH); glUseProgram(m_nShaderProgram); //正交投影 m_mat4View = glm::lookAt(glm::vec3(0, 0, -1), glm::vec3(0, 0, 0), glm::vec3(0, -1, 0)); m_mat4Projection = glm::ortho(-1.0f, 1.0f, -1.0f, 1.0f); m_mat4Model = glm::mat4(1.0f); m_mat4Model = glm::translate(m_mat4Model, glm::vec3(m_fXTranslate, m_fYTranslate, m_fZTranslate)); m_mat4Model = glm::rotate(m_mat4Model, glm::radians(m_fXRotateDegree), glm::vec3(1.0f, 0, 0)); m_mat4Model = glm::rotate(m_mat4Model, glm::radians(m_fYRotateDegree), glm::vec3(0, 1.0f, 0)); m_mat4Model = glm::rotate(m_mat4Model, glm::radians(m_fZRotateDegree), glm::vec3(0, 0, 1.0f)); m_mat4Model = glm::scale(m_mat4Model, glm::vec3(m_fXScale, m_fYScale, m_fZScale)); m_mat4ProjectionModelView = m_mat4Projection * m_mat4View * m_mat4Model; glUniformMatrix4fv(m_iProjectionModelViewIDUniform, 1, GL_FALSE, &m_mat4ProjectionModelView[0][0]); glEnable(GL_TEXTURE_2D); SetTexturesImages(panoramaFrame); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glFlush(); glUseProgram(0); glBindTexture(GL_TEXTURE_2D, 0); glDisable(GL_TEXTURE_2D); } 对应QOpenGLWidget代码如下。 void QMyOpenGLWidget::initializeGL() { QOpenGLFunctions *f = QOpenGLContext::currentContext()->functions(); f->initializeOpenGLFunctions(); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); } void QMyOpenGLWidget::resizeGL(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); } void QMyOpenGLWidget::paintGL() { makeCurrent(); if (nullptr != m_Picture.pTextureData[0] && nullptr != m_pDrawer) { this->m_pDrawer->Draw(this->width(), this->height(), m_Picture); } } void QMyOpenGLWidget::drawPicturepaintGL() { this->update(); return; } 对应顶点着色器和片段着色器代码如下。 #version 330 core uniform mat4 ProjectionModelView; attribute vec4 vertexCoord; attribute vec2 textureCoord; varying vec2 outTextureCoord; void main(void){ gl_Position = ProjectionModelView * vertexCoord; outTextureCoord = textureCoord; } varying vec2 outTextureCoord; uniform sampler2D textureY; void main(void) { vec3 bgr; bgr = texture2D(textureY, outTextureCoord).rgb; gl_FragColor = vec4(bgr, 1.0); }
OpenGL入门编程求解答 错误 4 error LNK2001: 无法解析的外部符号 _NtProcessStartup
代码如下,从计算机图形学第三版完整抄下来的程序。 错误就是 4 error LNK2001: 无法解析的外部符号 _NtProcessStartup 求大神 #include <windows.h> #include <stdio.h> #include <GL/glut.h> void init(void) { glClearColor(1.0,1.0,1.0,0.0); //窗口背景颜色 glMatrixMode(GL_PROJECTION); //设置投影类型模式 gluOrtho2D(0.0,200.0,0.0,150.0); //正投影将世界坐标系二维矩形区域的内容映射到屏幕上 } void lineSegment(void) { glClear(GL_COLOR_BUFFER_BIT); //刷新颜色缓存 glColor3f(1.0,0.0,0.0); //指定三个RBG颜色分量 glBegin(GL_LINES); glVertex2i(180,15); //Specify line-segment geometry glVertex2i(10,145); glEnd(); glFlush(); //强制清空所有缓存来处理OpenGL函数 } void main(int argc,char** argv) { glutInit(&argc,argv); //初始化 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //设定显示窗口的缓存和颜色模型等选项 glutInitWindowPosition(50,100); //窗口的位置 glutInitWindowSize(400,300); //窗口的大小 glutCreateWindow("hello"); //标题的名字 init(); glutDisplayFunc(lineSegment); //将描述送到显示窗口 glutMainLoop(); //激活窗口 }
opengl在VC2010中运行遇到的问题
在vc2010中配置了opengl的glew,glut,freeglut,gltools的库和头文件,用别人调试的代码怎么也跑不通,请问该如何解决 1> 正在对“Debug\OpenTest.unsuccessfulbuild”执行 Touch 任务。 1>ClCompile: 1> 所有输出均为最新。 1>ManifestResourceCompile: 1> 所有输出均为最新。 1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fprintf 已经在 gltools.lib(GLTools.obj) 中定义 1> 正在创建库 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.lib 和对象 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exp 1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 1>gltools.lib(GLBatch.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z),该符号在函数 "public: virtual void * __thiscall GLBatch::`scalar deleting destructor'(unsigned int)" (??_GGLBatch@@UAEPAXI@Z) 中被引用 1>gltools.lib(GLTriangleBatch.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z) 1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 ___report_rangecheckfailure,该符号在函数 "bool __cdecl gltLoadShaderFile(char const *,unsigned int)" (?gltLoadShaderFile@@YA_NPBDI@Z) 中被引用 1>gltools.lib(glew.obj) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure 1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 __imp____acrt_iob_func,该符号在函数 "bool __cdecl gltCheckErrors(unsigned int)" (?gltCheckErrors@@YA_NI@Z) 中被引用 1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 __imp____stdio_common_vfprintf,该符号在函数 __vfprintf_l 中被引用 1>C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exe : fatal error LNK1120: 4 个无法解析的外部命令 1> 1>生成失败。 1> 1>已用时间 00:00:05.07 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
(OpenGL)0xC0000005: 执行位置 0x0000000000000000 时发生访问冲突,运行glBindBuffer函数时崩溃。
1.运行一个OpenGL/CUDA相结合的样例程序,main.cpp编译成功。运行可执行文件时图形界面无法成功运行,调试过程中显示在glBindBuffer函数处程序报错。 2.main.cpp代码: ``` #include "kernel.h" #include <stdio.h> #include <stdlib.h> #ifdef _WIN32 #define WINDOWS_LEAN_AND_MEAN #define NOMINMAX #include <windows.h> #endif #ifdef __APPLE__ #include<GLUT/glut.h> #else #include <GL/glew.h> #include <GL/freeglut.h> #endif #include <cuda_runtime.h> #include <cuda_gl_interop.h> #include "interactions.h" //texture and pixel objects GLuint pbo = 0;//OpenGL pixel buffer object GLuint tex = 0;//OpenGL texture object struct cudaGraphicsResource *cuda_pbo_resource; void render() { uchar4 *d_out = 0; cudaGraphicsMapResources(1, &cuda_pbo_resource, 0); cudaGraphicsResourceGetMappedPointer((void**)&d_out, NULL, cuda_pbo_resource); kernelLauncher(d_out,W, H, loc); cudaGraphicsUnmapResources(1, &cuda_pbo_resource, 0); } void drawTexture() { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, W, H, 0, GL_RGBA,GL_UNSIGNED_BYTE,NULL); glEnable(GL_TEXTURE_2D); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex2f(0, 0); glTexCoord2f(0.0f, 1.0f); glVertex2f(0, H); glTexCoord2f(1.0f, 1.0f); glVertex2f(W, H); glTexCoord2f(1.0f, 0.0f); glVertex2f(W, 0); glEnd(); glDisable(GL_TEXTURE_2D); } void display() { render(); drawTexture(); glutSwapBuffers(); } void initGLUT(int *argc, char** argv) { glutInit(argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutInitWindowSize(W,H); glutCreateWindow(TITLE_STRING); #ifdef __APPLE__ glewInit(); #endif } void initPixelBuffer() { GLuint pbo = 0; glGenBuffers(1, &pbo); glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbo); glBufferData(GL_PIXEL_UNPACK_BUFFER, 4 * W * H * sizeof(GLubyte), 0, GL_STREAM_DRAW); GLuint tex = 0; glGenTextures(1, &tex); glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); cudaGraphicsGLRegisterBuffer(&cuda_pbo_resource, pbo, cudaGraphicsMapFlagsWriteDiscard); } void exitfunc() { if (pbo) { cudaGraphicsUnregisterResource(cuda_pbo_resource); glDeleteBuffers(1, &pbo); glDeleteTextures(1, &tex); } } int main(int argc,char** argv) { printInstructions(); initGLUT(&argc, argv); gluOrtho2D(0, W, H, 0); glutKeyboardFunc(keyboard); glutSpecialFunc(handleSpecialKeypress); glutPassiveMotionFunc(mouseMove); glutMotionFunc(mouseDrag); glutDisplayFunc(display); initPixelBuffer(); glutMainLoop(); atexit(exitfunc); return 0; } ``` 3.报错信息:0x0000000000000000 处(位于 dist_2d_cuda.exe 中)引发的异常: 0xC0000005: 执行位置 0x0000000000000000 时发生访问冲突。 请问具体是什么问题呢,向各位求助~
MAC上使用XCODE想开发OPENGL时候遇到的问题
我在网上看教程学习OPENGL游戏开发时,教程是基于WINDOWS开发的OPENGL,调用了WINDOWS特有的OPENGL的API,有个实例小程序开头是这样: #ifdef _WINDOWS #include <windows.h> #endif #include <gl/gl.h> #include <gl/glu.h> #include <math.h> #include "CGfxOpenGL.h" 。。。(接下来不是我问的重点) 我现在使用的是MAC上xcode实验,window.h这些我知道肯定不能用,include<gl/gl.h>这些也修改成mac的版本,在xcode的library 里面也加入了glut和opengl库文件(glut相关小程序都能实现),但这里,"CGfxOpenGL.h"这个问题怎么解决,目前程序报错不认CGfxOpenGL.h啊。
如何 hook 夜神模拟器最新版 的OpenGL中的wglswapbuffers 函数 并且被执行能够跳转到我自己的函数
我想hook 夜神模拟器最新版的客户端 内部设置是opengl 渲染 我用dependency 查看过 它最新版客户端的 dll依赖情况,发现一个问题,它并没有直接依赖gdi32.dll 和opengl32.dll 而是依赖了glut32.dll 然后 这个dll依次依赖上面的2个dll 我现在 去hook gdi32.dll 中的SwapBuffers 函数 hook了但是没有被执行所以没有跳转到我的 函数中,hook opengl32.dll中的 wglSwapBuffers 函数也是一样。
Linux 下编译c++ opengl的小程序
完整的代码如下 ``` #include <GL/glut.h> #include <cmath> #include <utility> #include <vector> using std::vector; using std::pair; vector<pair<int, int> > my_points(4); vector<pair<int, int> > current_point(4); my_points.push_back(make_pair(0, 0)); my_points.push_back(make_pair(50, 0)); my_points.push_back(make_pair(100, 0)); my_points.push_back(make_pair(150, 0)); current_point = my_points; struct Degree { Degree(int a, int b, int c) { first = a; second = b; third = c; } int first; int second; int third; }; map<int, Degree> position(4); position[0] = position(0, 0, 0); position[1] = position(90, 0, 0); position[2] = position(45, -45, 45); position[3] = position(-90, 0, 0); void init(); void display(); void draw_axis(); void reshape(int w, int h); void draw_frame(void); void translate(Degree& posi); void keyboard(unsigned char key, int x, int y); float matrix_rotat[3][3] = { // 旋转矩阵 {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {0.0, 0.0, 1.0} }; int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500, 500); glutInitWindowPosition(0, 0); glutCreateWindow(argv[0]); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMainLoop(); } void init(void) { glClearColor(0.1, 0.2, 0.4, 0.0); glShadeModel (GL_SMOOTH); } void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); if (w <= h) gluOrtho2D(-200.0, 250.0, -100.0*(GLfloat)h/(GLfloat)w, 200.0*(GLfloat)h/(GLfloat)w); else gluOrtho2D(-200.0*(GLfloat)w/(GLfloat)h, 250.0*(GLfloat)w/(GLfloat)h, -50.0, 200.0); glColor3f(1, 0.5, 0.4); glMatrixMode(GL_MODELVIEW); } void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1, 0.5, 0.4); draw_axis(); glLoadIdentity(); // draw_frame(); glFlush (); } void draw_frame() { glShadeModel(GL_SMOOTH); glBegin (GL_LINE_STRIP);//draw frame for (int i = 0; i < 4; i++) { glColor3f(1.0, 0.0, 0.0); glVertex2f(current_point[i].first, current_point[i].second); } glEnd(); } void draw_axis() { // draw coordinate axis glBegin(GL_LINES); glColor3f(1.0, 1.0, 1.0); // x axis glVertex2f(-500.0, 40.0); glVertex2f(500.0, 40.0); glColor3f(1.0, 1.0, 1.0); // y axis glVertex2f(0.0, 400.0); glVertex2f(0.0, -400.0); glEnd(); // draw scale glBegin(GL_LINES); for (int i = -50; i <= 50; i++) { // x axis glColor3f(1.0, 1.0, 1.0); glVertex2f(10.0*i, 40.0); glVertex2f(10.0*i, 44.0); } for (int i = -40; i <= 40; i++) { // y axis glColor3f(1.0, 1.0, 1.0); glVertex2f(0.0, 10.0*i); glVertex2f(4.0, 10.0*i); } glEnd(); } void translate(Degree& posi) { ///// changed into matrix later vector<vector<double> > trans_matrix(2); for (int i = 0; i < 2; i++) for (int j = 0; j < 2; j++) trans_matrix[i].push_back(0); double num1[] = {cos(posi.first), -sin(posi.first)}; //initialize the transform matrix for (int i = 0; i < 2; i++) trans_matrix[0][i] = num1[i]; double num2 = {sin(posi.first), cos(posi.first)}; for (int i = 0; i < 2; i++) trans_matrix[1][i] = num2[i]; current_point[0].first = current_point[0].second = 0; for (int i = 0; i < 2; i++) { current_point[0].first += (trans_matrix[i][0]*my_points[0].first + trans_matrix[i][1]*my_points[1].second); current_point[0].second += (trans_matrix[i][0]*my_points[0].first + trans_matrix[i][1]*my_points[0].second); } glBegin (GL_LINES);//draw frame glColor3f(1.0, 0.0, 0.0); glVertex2f(0, 0); glVertex2f(current_point[0].first, current_point[0].second); glEnd(); } /* void rotate_frame(void) { float (*tmp_frame)[7] = new float[3][7]; memset(tmp_frame, 0.0, sizeof(tmp_frame)); frame = tmp_frame; glLoadIdentity(); draw_frame(); // draw the frame after transformation glFlush(); } */ void keyboard(unsigned char key, int x, int y) { switch (key) { case 'Q': case 'q': translate(position[0]); break; case 'W': case 'w': translate(position[1]); break; case 'E': case 'e': translate(position[2]); break; case 'R': case 'r': translate(position[3]); break; } } ``` 编译器报错> arm.cpp:12:1: error: ‘my_points’ does not name a type my_points.push_back(make_pair(0, 0)); ^ arm.cpp:13:1: error: ‘my_points’ does not name a type my_points.push_back(make_pair(50, 0)); ^ arm.cpp:14:1: error: ‘my_points’ does not name a type my_points.push_back(make_pair(100, 0)); ^ arm.cpp:15:1: error: ‘my_points’ does not name a type my_points.push_back(make_pair(150, 0)); ^ arm.cpp:16:1: error: ‘current_point’ does not name a type current_point = my_points; ^ arm.cpp:28:1: error: ‘map’ does not name a type map<int, Degree> position(4); ^ arm.cpp:30:1: error: ‘position’ does not name a type position[0] = position(0, 0, 0); ^ arm.cpp:31:1: error: ‘position’ does not name a type position[1] = position(90, 0, 0); ^ arm.cpp:32:1: error: ‘position’ does not name a type position[2] = position(45, -45, 45); ^ arm.cpp:33:1: error: ‘position’ does not name a type position[3] = position(-90, 0, 0); ^ 不知道这里是什么问题,STL为什么不能用,是编译选项的问题吗? 编译命令g++ arm.cpp -o arm -lGL -lglut -lGLU
opengl如何使用shader
opengl新手入门,用的是visual2013,使用glut来写的opengl。目前学会了基础画图,想要用shader处理,可是不知道如何入手,请问该怎么学? 问题1:我目前只在头文件中包含glut.h,偶尔用到math.h与stdio.h,如果我想使用shader的话需要哪些头文件? 问题2:目前知道shader需要创建.frag和.vert,需要在main.cpp中如何操作才能链接到这两个文件? 问题3:.frag和.vert文件中需要都是用什么代码来进行处理的?
130 个相见恨晚的超实用网站,一次性分享出来
文末没有公众号,只求 点赞 + 关注 搞学习 知乎:www.zhihu.com 大学资源网:http://www.dxzy163.com/ 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:stu
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱  极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件,   选择安装到U盘(按照操作无需更改) 三、重启进入pe系统   1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12)     选择需要启
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
java源码分析 Arrays.asList()与Collections.unmodifiableList()
举个栗子 本章示例代码来自java编程思想——17.4.1未获支持的操作——Unsupported类。 import java.util.*; public class Unsupported { static void test(String msg, List&lt;String&gt; list) { System.out.println("--- " + msg
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C
程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
蓝桥杯知识点汇总:基础知识和常用算法
文章目录JAVA基础语法:算法竞赛常用的JAVA API:基础算法待更: 此系列包含蓝桥杯所考察的绝大部分知识点,一共有基础语法,常用API,基础算法和数据结构,和往年真题四部分,虽然语言以JAVA为主,但算法部分是相通的,C++组的小伙伴也可以看哦。所有文章的链接都会在此公布,还有很多没有更新,会持续更新,如果大佬发现文章有错误的地方请指正,我会十分感谢。另外,有什么问题可私信我~ JAVA基础
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
实现简单的轮播图(单张图片、多张图片)
前言 刚学js没多久,这篇博客就当做记录了,以后还会完善的,希望大佬们多多指点。ps:下面出现的都是直接闪动,没有滑动效果的轮播图。 单张图片的替换 原理 1.将几张图片叠在一起,通过改变"display:block"和"display:none"这两个属性实现替换。 (前提:在css中给所有图片加上display:none属性) 2.不用将图片叠在一起,将一个div当做"窗口",通过"of
强烈推荐10本程序员在家读的书
很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mk
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药
Java与Python学习通法(1)和(2)序言和编程语言发展史怎么学
大家好,我是 jacky 朱元禄,很高兴跟大家一起学习 《Java与Python学习通法系列》。 首先,说一下,我为什么要录这个课; 我们都已经知道Java 和 Python的视频教程和书籍,可以说是非常非常多了,那我录制本系列课的意义是什么呢? (1)课程特色一:我想告诉大家学习编程语言是有捷径的,这个捷径就是 理解技术背后的“哲学逻辑”,或者说是“人文逻辑”,相信你听完 jack
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)
由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 整理了一份Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。       欢迎大家加入java学习交流社区  点击加入   可获取文中文档       小编推荐:     
Python基础知识点梳理
python基础知识点梳理 摘要: 本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾。python的详细语法介绍可以查看官方编程手册,也有一些在线网站对python语法进行了比较全面的介绍,比如菜鸟教程: python3 教程|菜鸟教程 为了方便聚焦知识点,本文涉及的操作实例并不多,想学好一门语言关键还得自己多编码多实践。 python语
2020年2月全国程序员工资统计,平均工资13716元
趋势 2020年2月,中国大陆程序员平均工资13716元,比上个月增加。具体趋势如图: 各主要程序员城市工资变化 城市 北京,上海,深圳,杭州,广州四地的工资最高。 city 平均工资 最低工资 中位数 最高工资 招聘人数 百分比 北京 18098 3750 15000 45000 20529 9.53% 深圳 16903 5750 15000 37500 30941 14
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
为什么说程序员做外包没前途?
之前做过不到3个月的外包,2020的第一天就被释放了,2019年还剩1天,我从外包公司离职了。我就谈谈我个人的看法吧。首先我们定义一下什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 如果你目前还年轻,但高不成低不就,只有外包offer,那请往下看。 外包公司你应该
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问