使用什么平台工具进行OpenGL开发比较好?

如题,临近毕业,毕业设计要使用OpenGL。但是我还不清楚哪一种开发工具比较好,之前接触的是使用VC++6.0来开发的。现在OpenGL的版本也上去了,我用什么开发好呢?VS2010?

7个回答

VS2010是主流支持中的最低版本,可以用,也是XP支持的最高版本,也可以用VS2013,这是最新版本(VS2015还在测试)。
特别推荐VS2013社区版,这是一个免费的全功能的版本
微软一般为开发工具提供5年的主流支持+5年的扩展支持,超过主流支持,就很多新的软件/库不再兼容了。SDK也停止支持了。

在 Mac 下用 Xcode 更强

为了快速开发,UltraEdit,写一个view播放调试界面,一边修改代码,一边查看渲染效果。

我用过VS2012,VS2013跟VS12差不多,都挺好用的。VS版本从12开始,写C++得话,提示给的非常好,有种写C#的感觉。跟OpenGL结合也很好。

1.eclipse中使用的java3d 封装的opengl
2.vs中使用的opentk封装的opengl
3.直接使用c语言调用opengl的库

直接使用c语言调用opengl的库

visual studio可以很好的配合OpenGL的sdk来进行开发。

http://www.cnblogs.com/phinecos/archive/2007/07/28/834668.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
opengl开发简单的小游戏 求助
如何用opengl开发一个简单的小蜜蜂(Galaxian)游戏? 求帮忙... 最好有源代码
qt opengl界面开发 运行时黑屏
![图片说明](https://img-ask.csdn.net/upload/201907/12/1562926409_938019.png) 使用qt+opengl开发后,运行时突然出现这种情况,右边的黑框就是原来的opengl,现在无从下手了
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啊。
OpenGL ES3.0纹理贴图问题,贴图发生错误,无法显示贴图细节是怎么回事啊?
最近在学习OpenGL ES,按照书上教程尝试写了个demo,然后发现在纹理贴图这块遇到问题了,求助各位大佬 程序思路很简单,画5个点然后贴上纹理,但是纹理总是出现错误,下面是截图: ![图片说明](https://img-ask.csdn.net/upload/202002/12/1581502455_517510.jpg) 这个是要贴的纹理,大小为512 \*1024,另外正方形纹理我也试过同样不行 ![图片说明](https://img-ask.csdn.net/upload/202002/12/1581502536_603856.png) 接下来是代码: 首先是Render: ```java package com.example.firstopengl; import android.content.Context; import android.opengl.GLES30; import android.opengl.GLSurfaceView; import android.opengl.Matrix; import com.airhockey.android.objects.Mallet; import com.airhockey.android.objects.Table; import com.airhockey.android.programs.ColorShaderProgram; import com.airhockey.android.programs.TextureShaderProgram; import com.airhockey.android.util.MatrixHelper; import com.airhockey.android.util.TextureHelper; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; public class AirHockeyRender implements GLSurfaceView.Renderer { private final String TAG = "AirHockeyRender"; private final Context context; private final float[] projectionMatrix = new float[16]; private final float[] modelMatrix = new float[16]; private Table table; private Mallet mallet; private TextureShaderProgram textureShaderProgram; private ColorShaderProgram colorShaderProgram; private int texture; public AirHockeyRender(Context context){ this.context = context; } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { GLES30.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); table = new Table(); mallet = new Mallet(); textureShaderProgram = new TextureShaderProgram(context); colorShaderProgram = new ColorShaderProgram(context); texture = TextureHelper.loadTexture(context, R.drawable.air_hockey_surface); } @Override public void onDrawFrame(GL10 gl) { GLES30.glClear(GLES30.GL_COLOR_BUFFER_BIT); textureShaderProgram.useProgram(); textureShaderProgram.setUniforms(projectionMatrix, texture); table.bindData(textureShaderProgram); table.draw(); colorShaderProgram.useProgram(); colorShaderProgram.setUniform(projectionMatrix); mallet.bindData(colorShaderProgram); mallet.draw(); } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { final float[] temp = new float[16]; //设置视口 GLES30.glViewport(0, 0, width, height); MatrixHelper.perspectiveM(projectionMatrix, 45, (float)width/(float)height, 1f, 10f); Matrix.setIdentityM(modelMatrix, 0); Matrix.translateM(modelMatrix, 0, 0f, 0f, -3.1f); Matrix.rotateM(modelMatrix, 0, -60f, 1f, 0f, 0f); Matrix.multiplyMM(temp, 0 ,projectionMatrix, 0, modelMatrix, 0); System.arraycopy(temp, 0, projectionMatrix, 0, temp.length); } } ``` 接下来是纹理生成相关 ``` package com.airhockey.android.util; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.opengl.GLES30; import android.opengl.GLUtils; import android.util.Log; import com.airhockey.android.Constants; import java.io.ByteArrayOutputStream; import java.nio.ByteBuffer; import java.nio.ByteOrder; public class TextureHelper { private final static String TAG = "TextureHelper"; public static int loadTexture(Context context, int resourceId){ final int[] textureObject = new int[1]; GLES30.glGenTextures(1, textureObject, 0); if(textureObject[0]==0){ if(LoggerConfig.ON){ Log.w(TAG, "Could not generate a new OpenGL texture object"); } return 0; } final BitmapFactory.Options options = new BitmapFactory.Options(); //需要原始的图像数据,而不是缩放的版本 options.inScaled = false; //将图像转换为位图 final Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId, options); if(bitmap==null){ if(LoggerConfig.ON){ Log.w(TAG, "Resource ID"+resourceId+"could not be decoded"); } GLES30.glDeleteTextures(1, textureObject, 0); return 0; } //告诉opengl纹理调用使用此纹理 GLES30.glBindTexture(GLES30.GL_TEXTURE_2D, textureObject[0]); GLES30.glTexParameteri(GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_MIN_FILTER, GLES30.GL_LINEAR_MIPMAP_LINEAR); GLES30.glTexParameteri(GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_MAG_FILTER, GLES30.GL_LINEAR); GLES30.glTexParameterf(GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_WRAP_S, GLES30.GL_REPEAT); GLES30.glTexParameterf(GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_WRAP_T, GLES30.GL_REPEAT); //将位图加载至opengl中 GLUtils.texImage2D(GLES30.GL_TEXTURE_2D, 0, bitmap, 0); //加载后释放位图,解除绑定 bitmap.recycle(); //生成mip贴图 GLES30.glGenerateMipmap(GLES30.GL_TEXTURE_2D); GLES30.glBindTexture(GLES30.GL_TEXTURE_2D, 0); return textureObject[0]; } } ``` 然后是画的物体: ``` package com.airhockey.android.objects; import android.opengl.GLES30; import com.airhockey.android.Constants; import com.airhockey.android.data.VertexArray; import com.airhockey.android.programs.TextureShaderProgram; public class Table { private static final int POSITION_COMPONENT_COUNT = 2; private static final int TEXTURE_COORDINATES_COMPONENT_COUNT = 2; private static final int STRIDE = (POSITION_COMPONENT_COUNT+TEXTURE_COORDINATES_COMPONENT_COUNT) * Constants.BYTE_PER_FLOAT; private final VertexArray vertexArray; private static final float[] VERTEX_DATA = { //x,y,s,t //三角扇区 0f, 0f, 0.5f, 0.5f, -0.5f, -0.8f, 0.0f, 1.0f, 0.5f, -0.8f, 1.0f, 1.0f, 0.5f, 0.8f, 1.0f, 0.0f, -0.5f, 0.8f, 0.0f, 0.0f, -0.5f, -0.8f, 0.0f, 1.0f // -0.5f, -0.8f, 0f, 1f, // -0.5f, 0.8f, 0f, 0f, // 0.5f, -0.8f, 1f, 1f, // // -0.5f, 0.8f, 0f, 0f, // 0.5f, -0.8f, 1f, 1f, // 0.5f, 0.8f, 1f, 0f }; public Table(){ vertexArray = new VertexArray(VERTEX_DATA); } public void bindData(TextureShaderProgram textureProgram){ vertexArray.setVertexAttribPointer(0, textureProgram.getPositonAttributeLocation(), POSITION_COMPONENT_COUNT, STRIDE); vertexArray.setVertexAttribPointer(POSITION_COMPONENT_COUNT, textureProgram.getTextureCoordinatesAttributeLocation(), TEXTURE_COORDINATES_COMPONENT_COUNT, STRIDE); } public void draw(){ GLES30.glDrawArrays(GLES30.GL_TRIANGLE_FAN, 0, 6); } } ``` 头真的大,研究了好久都没研究出来怎么回事
clion如何搭建OpenGL开发环境,我是小白,希望有图和详细点,谢谢大虾
clion如何搭建OpenGL开发环境,我是小白,希望有图和详细点,谢谢大虾
opengl如何使用shader
opengl新手入门,用的是visual2013,使用glut来写的opengl。目前学会了基础画图,想要用shader处理,可是不知道如何入手,请问该怎么学? 问题1:我目前只在头文件中包含glut.h,偶尔用到math.h与stdio.h,如果我想使用shader的话需要哪些头文件? 问题2:目前知道shader需要创建.frag和.vert,需要在main.cpp中如何操作才能链接到这两个文件? 问题3:.frag和.vert文件中需要都是用什么代码来进行处理的?
VS+MFC+opengl系统开发的问题?(初学)
对着书在学利用MFC建立基于多文档的应用程序框架, 书中第二章是建了一个多文档的MFC程序,最终运行结果我也调试的和书本一样,如下图 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520327_431703.png) 但是到了第章三,他是这样说的将在MFC AppWizard产生的应用程序框架的基础上,区具体组织一个基本三维图形编辑系统的开发,(我的理解就是在上一章我建立的文件上继续扩展) 如下图 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520535_736243.png) 接下来我发现要完成他说的步骤就一定要建立一个MFC的对话框,但是上一章是MFC的多文档。这是这一章的第一步,要建立一个对话框。 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520786_964099.png) 我的困惑是请问这两章是如何衔接的,如果按照第二章建立了这样一个文件后要如何衔接完成下一章的工作,第二章最后是建立了这样一个文档 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520871_238209.png) 如果建立了一个对话框,我发现就会出现两个不同的文档, ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577521018_401371.png) 所以:请问如果要在上一个文档3DEditor(MFC多文档)的基础上添加对话框该怎么操作?
QT5中如何使用glfw库,与opengl结合较好的gui推荐?
# 问题: 如题,本人学习了Qt和OpenGL(在windows环境下) 其中,Qt版本为5.9.1,OpenGL是现代OpenGL,使用的是glfw库, 按照LearnOpenGL网站学习的差不多了,现在需要把opengl与Qt结合起来。 看了好多博客都是用的Qt自带的QOpenGL,使用glut库。如果您知道如何将Qt5与glfw库结合起来,请告知,万分感谢! 如果结合很困难,是否有其他gui推荐
OpenGL的函数是什么语言写的
刚开始看,说opengl函数了是一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。是什么意思,他的函数是什么语言编写的,跨语言是通过提供各种语言编写的函数吗。
opengl怎么进行参数传递?
opengl代码中怎么进行参数传递?在main函数中用scanf输入数据后,怎么传递给函数?
请问导丝植入的模拟是运用什么平台呀?
背景:最近看了关于血管内导丝介入的碰撞检测的问题,发现文章中使用opengl正投影相机进行实时碰撞检测 文献的作者利用CT获取血管的体数据,对血管进行了三维建模 问题:但是文献中没有讲到是如何模拟导丝植入血管的这个过程的方法,只是简单地提到运用“多体重复”,一直都有一个困惑,就是作者建立好了三维的血管模型,但是是怎么建立导丝植入的模型呢?导丝模型又是怎么和血管模型联系在一起的呢?进行碰撞检测的呢?是通过VS这个平台么? 总而言之就是:在三维建模中,是怎么模拟一根导丝植入到一个血管模型中,从而通过算法模拟推算出导丝在血管中的形状变化?是用什么平台? 跪求各位大佬解答了,我真的觉得自己要崩溃了。
关于利用OpenGL ES进行Android开发中,外部obj文件模型导入的问题
我在用OpenGL ES进行一个Android项目的开发,在一个3D场景中,我需要从外部导入.obj文件的模型, 但是我不知道如何改变导入的模型的尺寸。是应该在3DMax等软件里修改模型的尺寸,还是应该再Android Studio中编程改变尺寸呢?希望能有大神指点一下。急求
电脑用VC++6.0打开含OpenGL工具使用C语言编写的程序后显示如图问题
电脑用VC++6.0打开含OpenGL工具使用C语言编写的程序后显示如图问题,是什么情况?![图片](https://img-ask.csdn.net/upload/201705/25/1495711841_943525.jpg)
linux下使用codeblocks学习OpenGL
我最近开始在linux下学习OpenGL,系统是CentOS,下载了OpenGL超级宝典第五版及源码,安装了mesa、glut、glew等依赖项,使用源码中提供的makefile编译源码能成功,可是我把GLTools文件夹拷到自己的工程文件夹下面,并设置了GLTools/include为搜索路径,也将GLTools/src下的文件都添加到了项目中,编译第一个源码的时候总是通不过,先是说GLenum、GLuint等类型没有定义,我改动了一下,将include glew.h之前的ifdefine给去掉了,结果又显示在glew.h之前包含了gl.h。。。。问题来了: 1、用make可以编译成功,是不是说明我机器上的基本配置没有问题? 2、我使用codeblocks开发,如何将书中的GLTools添加到我自己的项目中才能正确运行? 弄了两天了,快崩溃了,希望哪个兄弟来帮帮忙,再不行,只能回去用windows了。先谢谢了!
基于OpenGL的立体模型库开发
各位大神: 这是我的毕业设计题目,我不是学习软件的 我学的和计算机没关系 但是阴差阳错选了这个课题 短时间学不会 但是短时间要用,恳请有大神帮帮我 模型库不用 只要在vc6.0建立OpenGL的程序可以查看三维软件就好 求源文件 不好意思只有4个 都给了 要是可以的话 另有重谢
OpenGL绘图颜色设置无效(MFC环境下)
用MFC做了一个小程序,大致功能是先显示一个读入的图形,然后在条件变化时显示另一个图形,最初的显示是正常的,然后消息处理函数也没问题,自定义了一个draw函数如下 void CReadView::Draw(){ glClearColor(1.0, 1.0,1.0, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer glEnable(GL_COLOR_MATERIAL); glLoadIdentity(); // Reset The Current Modelview Matrix glTranslatef(-1.5f, 0.0f, -6.0f);//物体左移1.5,向内移6,相当于移动镜头一样,让物体进入镜头中 glColor3f(1.0, 0.0, 0.0); glBegin(GL_TRIANGLES); // 绘制三角形(逆时针画出来的三角形才是正面朝着我们的) glVertex3f(-1.0, -1.0, 0.0); // 左下顶点(//glVertex 的第一个参数是X坐标,然后依次是Y坐标和Z坐标) glVertex3f(1.0, -1.0, 0.0); // 右下顶点 glVertex3f(0.0, 1.0, 0.0); // 上顶点 glEnd(); // 三角形绘制结束 glColor3f(0.4, 0.75, 1.0); glRectf(1.5f, 1.5f, 2.5f, 2.5f); glLineWidth(3); glBegin(GL_LINES); glColor3f(1.0, 0.0, 0.0); glVertex2f(3.0f, 0.0f); glVertex2f(3.5f, 0.0f); //在这里使用glVertex*系列函数 指定你所希望的顶点位置 glEnd(); glLineWidth(1); glColor3f(1.0f, 1.0f, 0.0f); glBegin(GL_LINES); glVertex3f(-3.0f, 2.0f, 3.0f); glVertex3f(3.0f, 1.0f, 0.0f); glEnd(); glColor3f(1.0f,0.0f,0.0f); glBegin(GL_LINES); glVertex2i(1, 1); glVertex2i(3, 3); glEnd(); glFlush(); } 把它放到的OnDraw函数里进行调用,程序可以正常执行,只是画出来的这些线段、图形都没有颜色(是默认的黑色),也就是glColor3f似乎失效了。 这些绘制的函数都是从网上找来做测试的,在正常单独的OpenGL环境里应该也都是没问题的。是MFC的问题吗?或者是OpenGL需要某些重新的预设置?求解答
JMonkeyEngine中Filter的实现原理是什么?
刚刚学习OpenGL,完成了场景渲染器(已经可以绘制一个三维世界),之后我想在不修改Shader的情况下添加其他效果。比方说在原来的基础上添加一个用Shader的实现的Fog,和JME的Filter挺像的,有什么实现方法推荐吗?
OpenGL不能同时使用glDrawElements和glDrawArrays绘制两个不同的模型吗?
学习OpenGL的时候碰到一个奇怪的问题。刚学到了OpenGL可以使用glDrawElements或者glDrawArrays两种方式来绘制图元。我就想练习一下这两种不同的绘图方式。然后**在同一个渲染循环中**分别使用 **glDrawElements绘制第一个模型**,**glDrawArrays绘制第二个模型**,奇怪的问题出现了,只有glDrawArrays这个绘图有效,但是我把绘制第二个模型的代码段注释起来后,第一个也是可以正常绘制的,也就是说**在同一个渲染循环中不能同时使用glDrawElements和glDrawArrays这两个函数**?我猜测OpenGL应该不会犯这么傻的错误,但是我实在不知道我代码哪里出了问题,请大佬们帮忙看看到底是哪里出了问题。 下面贴上我的代码片段: --- ```c++ //准备第一个模型vbo,vao,ebo GLuint vbo, ebo, vao; glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(vertex), vertex, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glGenBuffers(1, &ebo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(index), index, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glGenVertexArrays(1, &vao); ``` --- ```c++ //准备第二个模型vbo,vao GLuint sanvbo, sanvao; glGenBuffers(1, &sanvbo); glBindBuffer(GL_ARRAY_BUFFER, sanvbo); glBufferData(GL_ARRAY_BUFFER, sizeof(san), san, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glGenVertexArrays(1, &sanvao); ``` --- ```c++ //渲染过程 //第一个模型:使用glDrawElements渲染 glBindBuffer(GL_ARRAY_BUFFER, vbo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); glBindVertexArray(vao); glVertexAttribPointer(0, 3, GL_FLOAT, false, 3 * sizeof(GLfloat), nullptr); glEnableVertexAttribArray(0); glDrawElements(GL_LINES, sizeof(index) / sizeof(GLuint), GL_UNSIGNED_INT, 0); ``` --- ```c++ //第二个模型,使用glDrawArrays渲染 glBindBuffer(GL_ARRAY_BUFFER, sanvbo); glBindVertexArray(sanvao); glVertexAttribPointer(0, 3, GL_FLOAT, false, 3 * sizeof(GLfloat), nullptr); glEnableVertexAttribArray(0); glDrawArrays(GL_TRIANGLES, 0, sizeof(san) / sizeof(float)); ``` --- 如上面代码段所示,如果我只单独的绘制一个模型,两个都可以正常绘制。但是一次绘制两个的时候就只有第二个被绘制出来了,第一个始终没有,不知道到底是哪里出了问题。
QT3D场景中如何加载OpenGL画的实体?
在Qt5.12版本中![图片说明](https://img-ask.csdn.net/upload/201912/20/1576829678_646846.png) , QT3D场景加载Obj文件后, 可以用Qt自带的基本实体进行绘制, 但是由于没有绘制圆弧管的基本实体, 但是绘制上千个实体时出图的效率太低, 想请问: 如何在该场景中利用OpenGL画实体?能否提供这种混合编程的实例?谢谢!
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
五年程序员记流水账式的自白。
不知觉已中码龄已突破五年,一路走来从起初铁憨憨到现在的十九线程序员,一路成长,虽然不能成为高工,但是也能挡下一面,从15年很火的android开始入坑,走过java、.Net、QT,目前仍处于android和.net交替开发中。 毕业到现在一共就职过两家公司,目前是第二家,公司算是半个创业公司,所以基本上都会身兼多职。比如不光要写代码,还要写软著、软著评测、线上线下客户对接需求收集...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
一文详尽系列之模型评估指标
点击上方“Datawhale”,选择“星标”公众号第一时间获取价值内容在机器学习领域通常会根据实际的业务场景拟定相应的不同的业务指标,针对不同机器学习问题如回归、分类、排...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
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) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
去年,阿里云发布了本地 IDE 插件 Cloud Toolkit,仅 IntelliJ IDEA 一个平台,就有 15 万以上的开发者进行了下载,体验了一键部署带来的开发便利。时隔一年的今天,阿里云正式发布了 Visual Studio Code 版本,全面覆盖前端开发者,帮助前端实现一键打包部署,让开发提速 8 倍。 VSCode 版本的插件,目前能做到什么? 安装插件之后,开发者可以立即体验...
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
2019年除夕夜的有感而发
天气:小雨(加小雪) 温度:3摄氏度 空气:严重污染(399) 风向:北风 风力:微风 现在是除夕夜晚上十点钟,再有两个小时就要新的一年了; 首先要说的是我没患病,至少现在是没有患病;但是心情确像患了病一样沉重; 现在这个时刻应该大部分家庭都在看春晚吧,或许一家人团团圆圆的坐在一起,或许因为某些特殊原因而不能团圆;但不管是身在何处,身处什么境地,我都想对每一个人说一句:新年快乐! 不知道csdn这...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问