通过提问,就知道你对相关概念相当混乱。
API:Application programming interface。应用程序编程接口,是一个很抽象的概念。简单来说就是别人提供给你一个类,或者函数来给你使用,那些类或者函数实现了某些特定的功能。
GDI:Graphics Device Interface简单来说就是一种图形设备接口,本身是用C++来实现的。
MFC:Microsoft Foundation Classes。以C++类的形式封装了Windows的API,并且包含一个应用程序框架,主要作用就是减少程序开发人员的工作量,有人不喜欢用MFC,那就直接用最基础的API。
GDI中提供的类和函数也可以叫API,mfc中提供的类和函数也可以叫API。
C++是什么?是一个编程语言,定义了语法,当然C++标准也实现了很多基础的函数,那也可以叫API。
c++做图和动画:
首先你要明白动画是什么。动画简单来说就是一系列连续的按一定的速率播放(想象一下胶片**的播放原理)。
我想任何编程语言都能做图和简单动画,只是对应的API不同而已,但是本质上的原理都是一样。
比如GDI提供了提供了能够画点,线,面等最基本的API,当然任何一个图形SDK都会提供最基础的API。
比如你要画一个圆。也许某些图形API提供了画圆的方法,直接调用一个函数就可以了,但是你需要知道圆到底是怎么画出来的。(2维)圆的数学定义是:假设圆点坐标为x0,y0那么圆的笛卡尔坐标系方程就是(x-x0)^2+(y-y0)^2=R^2最直观的想象就是画出圆上的每一个点。将方程变化一下:x=RCOS(θ)+x0;y=RSIN(θ)+y0θ范围(0-2π)可以每隔1度取一个点然后用线段连起来,最终看起来就是圆了,只要间隔度数越小,看起来就越圆。
比如你要做更专业的动画,那当然有更专业的方式,这个涉及到的问题就更深了。但是本质上全部是数学和物理,所以基本功是最重要的。
就像一个真正的武林高手必然有深厚的内功修养一样,只会花拳绣腿,那永远是江湖上的笑话。内功就是数学和物理,一切API都是招式。有了深厚的内功,学起招式来才能如鱼得水,变换无穷。相反永远不会变通,不能创新,只能是打杂跑腿。此比喻不一定恰当,但是希望你修炼好内功后,不在为这些琐碎的招式问题而烦恼。
API如何使用,看MSDN,最纯正的解释都在那里,网上随便搜的,都是人家看了以后加工的,那得看那个人理解的是否真正正确了,据我所知,网上%80+都是重复粗俗的信息。所以搞计算机,英语很重要,不要说您过来4级或者6级就行了,关键问题是能不能看懂MSDN,看懂英文资料,不要听人家乱说随便过个4级就能看懂MSDN,我敢说那是扯淡。考98是过4级,考60也是过,那能一样吗,一个读清华,和一个读三本的那学的能一样吗。要能完全看懂MSDN,简单的已考试过6级的标准来说,是不可能的。所以英语一定要扎实!
游戏编程也是编程,都是需要敲代码的。所以基本的语言基本功是不能少的,比如C语言或者C或者C#至少要精通其中一门。精通到什么地步呢,基本数据结构和基础的算法还有设计模式你得非常熟悉。这样算是入门了。
接下来你就可以选择一个游戏引擎了,市面上主流的游戏引擎有两种一个Unity3D一个虚幻四。但是这两款引擎的脚本语言并不一样,Unity是C#虚幻四是C所以在学习之前要想好使用引擎开发什么类型的游戏。
主要学的内容如下:
1游戏程序设计:C程序设计入门;基本数据类型和输入输出;流程控制语句;数组、指针和引用、函数;程序结构和书写规;范结构体和联合体、类;继承与多态;异常处理与程序调试。
2算法与数据结构:算法分析;数据结构;基本算法;STL的概念与使用;静态库与动态库;XML库的使用。
3Win32程序设计:Windows程序入门;Windows消息;GDI绘图游戏工具与MFC;网络编程基础。
4游戏数学和智能应用:游戏中的坐标系;矢量、矩阵;几何碰撞;物理模拟;人工智能与寻路算法。
52D游戏技术与应用:2D游戏技术概论;游戏地图系统;GUI系统;战斗系统设计;任务系统;优秀的声音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
游戏开发需要学习C语言系列、UE4这些常用游戏引擎,门槛很高。但游戏开发行业的整体收入水平,确实算是高薪了,学成后回报较高。
游戏开发所涉及的技能知识面较多,且难以把握学习难度,不建议自学。小白建议从UI做起,因为UI开发中简单重复而琐碎的工作相对比较多。
主要学的内容如下:
1游戏程序设计:C++程序设计入门;基本数据类型和输入输出;流程控制语句;数组、指针和引用、函数;程序结构和书写规;范结构体和联合体、类;继承与多态;异常处理与程序调试。
2算法与数据结构:算法分析;数据结构;基本算法;STL的概念与使用;静态库与动态库;XML库的使用。
3Win32程序设计:Windows程序入门;Windows消息;GDI绘图游戏工具与MFC;网络编程基础。
4游戏数学和智能应用:游戏中的坐标系;矢量、矩阵;几何碰撞;物理模拟;人工智能与寻路算法。
52D游戏技术与应用:2D游戏技术概论;游戏地图系统;GUI系统;战斗系统设计;任务系统;优秀的声音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
GDI在Windows中定义为Graphics Device Interface,即图形设备接口,是Windows API(Application Programming Interface)的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行 *** 作。它的桥梁作用体现在:
(1)用户通过调用GDI函数将逻辑空间的 *** 作转化为具体针对设备驱动程序的调用。
为实现图形设备无关性,Windows 的绘图 *** 作在一个设备描述表上进行。用户拥有自己的"逻辑坐标"系统,它独立于实际的物理设备,与"设备坐标"相对应。开发Windows应用程序时,程序员关心的是逻辑坐标,我们在逻辑坐标系上绘图,利用GDI将逻辑窗口映射到物理设备上。
(2)GDI能检测具体设备的能力,并依据具体的设备以最优方式驱动这些设备,完成真实的显示。
GDI函数大致可分类为:设备上下文函数(如GetDC、CreateDC、DeleteDC)、 画线函数(如LineTo、Polyline、Arc)、填充画图函数(如Ellipse、FillRect、Pie)、画图属性函数(如SetBkColor、SetBkMode、SetTextColor)、文本、字体函数(如TextOut、GetFontData)、位图函数(如SetPixel、BitBlt、StretchBlt)、坐标函数(如DPtoLP、LPtoDP、ScreenToClient、ClientToScreen)、映射函数(如SetMapMode、SetWindowExtEx、SetViewportExtEx)、元文件函数(如PlayMetaFile、SetWinMetaFileBits)、区域函数(如FillRgn、FrameRgn、InvertRgn)、路径函数(如BeginPath、EndPath、StrokeAndFillPath)、裁剪函数(如SelectClipRgn、SelectClipPath)等。
GDI虽然使程序员得到了一定程度的解脱,但是其编程方式仍很麻烦。譬如,显示一张位图,程序员需要进行"装入位图―读取位图文件头信息―启用设备场景―调色板变换"等一连串 *** 作。而有了GDI+,这些问题便迎刃而解了。
顾名思义,GDI+是GDI的增强版。它是微软在Windows 2000以后 *** 作系统中提供的新接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的"托管类接口"。GDI+主要提供了以下三类服务:
(1) 二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类;
(2) 图像处理:大多数都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提供了Bitmap、Image等类,它们可用于显示、 *** 作和保存BMP、JPG、GIF等图像格式。
(3) 文字显示:GDI+支持使用各种字体、字号和样式来显示文本。
GDI接口是基于函数的,而GDI+是基于C++类的对象化的应用程序编程接口,因此使用起来比GDI要方便。
DLL的全称是Dynamic Link Library,中文叫做“动态链接文件”。在Windows *** 作系统中,DLL对于程序执行是非常重要的,因为程序在执行的时候,必须链接到DLL文件,才能够正确地运行。而有些DLL文件可以被许多程序共用。因此,程序设计人员可以利用DLL文件,使用程序不至于太过巨大。但是当安装的程序越来越多,DLL文件也就会越来越多,如果当你删除程序的时候,没有用的DLL文件没有被删除的话,久而久之就造成系统的负担了。
DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下 *** 作的许多函数和资源。
DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows *** 作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
DLL可在“C:Windows”目录“C:WindowsSystem”目录和程序的安装目录中找到。如果启动程序,但一个或多个DLL文件丢失或毁坏,则会收到出错消息,如“找不到xyzdll”。如果启动的程序带有一个过期的DLL文件或不匹配的DLL文件,则会出现“未定义的动态链接调用”消息。这时,你可在其他电脑上找到正确的DLL文件并将它拷贝到适当的目录下,程序就能正确运行
以上就是关于c++作图,用什么最方便GDI、API还是什么全部的内容,包括:c++作图,用什么最方便GDI、API还是什么、游戏开发都需要学哪些软件,需要编程基础吗、c++游戏开发需要学什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)