求大神一种简便的绘图方法,有关于vc图形编程!!!!!!!!!
已经学会绘图,要用vc++6.0的图形编程实现一个数据结构的算法演示,不可能一个节点一个节点地画吧,如果位置不规律还要画很多那不是崩溃了?忙了一个下午,实在没办法。有哪位...
已经学会绘图,要用vc++6.0的图形编程实现一个数据结构的算法演示,不可能一个节点一个节点地画吧,如果位置不规律还要画很多那不是崩溃了?忙了一个下午,实在没办法。有哪位大神知道该怎么弄。能定义一个新的函数之后传递参数进去之后比较简便还是怎么样~??
展开
2个回答
展开全部
你应该多了解一下图形处理技术,目前Windows中常用的图形处理技术大致有4种:
1、GDI技术
2、GDI+技术(也称GDIPlus,是GDI的升级版本技术)
3、DirectX技术
4、OpenGL技术
而图形技术又可分为点阵、矢量、三维等三种技术,GDI/GDI+中只有点阵和矢量的现成处理函数,而DX和OpenGL还支持三维技术。当然,用GDI/GDI+也可做出三维的效果,只不过需要自己写3D引擎。建议先了解这些技术和技术模型后,再写程序,不然做出来的程序效率可能会很低的。比如你说的很多问题都是对这些技术的概念不清晰而导致,如果你清楚了这些技术的架构、概念以及具体有哪些函数和过程,并对其函数过程都能够了解其特性和用途,那么随便看看点范例,如DX SDK 中的范例,你就会明白一些开发思路,就会用正确的模型开发出相应的程序,也不会担心什么效率什么的问题了。
1、GDI技术
2、GDI+技术(也称GDIPlus,是GDI的升级版本技术)
3、DirectX技术
4、OpenGL技术
而图形技术又可分为点阵、矢量、三维等三种技术,GDI/GDI+中只有点阵和矢量的现成处理函数,而DX和OpenGL还支持三维技术。当然,用GDI/GDI+也可做出三维的效果,只不过需要自己写3D引擎。建议先了解这些技术和技术模型后,再写程序,不然做出来的程序效率可能会很低的。比如你说的很多问题都是对这些技术的概念不清晰而导致,如果你清楚了这些技术的架构、概念以及具体有哪些函数和过程,并对其函数过程都能够了解其特性和用途,那么随便看看点范例,如DX SDK 中的范例,你就会明白一些开发思路,就会用正确的模型开发出相应的程序,也不会担心什么效率什么的问题了。
更多追问追答
追问
哦哦,阁下真是高手哇。。现在我只是菜鸟而已,只是用vc6.0建了一个单文档,能绘制图形但是效率太低了,就想直接把位图显示出来。请问一下大侠位图怎么显示出来?我已经会把位图import进去了
追答
如果你是是想实现位图的显示,可以用GDI函数就可以实现了,不过前提是你要知道GDI是什么?有什么函数?他的工作理念是怎么样的?
其实也并不复杂,GDI技术主要是基于设备句柄(hDC)来绘图的,而这个设备需要配合一个位图才能正常工作,所以,在GDI图形程序处理上,必须先创建好一个设备,然后创建一个位图,再把位图选入设备,这时就可以用GDI函数在这个创建的设备上绘图了,如果要进行灰度处理类似的操作(位图像素色彩操作),可以用 GetBitmapBits 取出位图数据到指定缓冲区,然后可对缓冲区数据进行运算,然后再用 SetBitmapBits 把运算好的数据放回去,这样的处理效率要比用 GetPixel 和 SetPixel 设置像素的效率高出几十倍。如果要显示图像到窗口或控件的区域上,只要用 BitBlt 函数把 GDI 设备内容绘制到目标设备上就可以了。最后注意的是用完了要删除和释放相关GDI对象和句柄。具体的你可以搜索一下 GDI 找一下相关的资料,也可以用 VB 的API 浏览器看看,只要是运用 "gdi32" 库的都属于 GDI 函数。
展开全部
能不能说的具体点,你要画什么 ····· 用opengl还是别的什么 c语言么????什么图形··肯定要用函数之类的吧·····
更多追问追答
追问
用函数是会的,我目前会在单文档上绘图,可是一个一个绘太麻烦,可不可以封装一个函数,例如我要画一个既定好的几何图形(比如两个矩形前后相接成为一个节点),传递一个坐标给这个函数,它就能自己画出来?
追答
不管如何 都是可以的 看你传过去的参数是什么 我不太清楚你想绘制的是什么图像 像素点的??还是用符号绘制??这样的话,你就把实现的内容封装到函数里,然后把这个坐标穿进去啊。可以直接穿两个int型(看你坐标的类型),也可以自己定义一个结构体,然后把这个结构体的变量作为参数传进去,根据你的需求设置为指针等形式······然后装载在一个自己的用户文件中,以后进行引用就行了····
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询