图片编程
❶ 什么是图像编程语言
就是不用自己编写代码,和搭积木一样,每个小模块的代码功能都是封装好的,你只需要根据你想实现的功能将它搭建出来就行。在网易的公开课上应该能看见。。。你找找看
❷ 用c语言编程怎样能够编出图片上的图形
#include<stdio.h>
#include<stdlib.h>
voidmain(){inti,j;
for(i=0;i<9;i++){
for(j=0;j<(N/2-abs(N/2-i)+1);j++)printf("*");
printf(" ");
}
}
❸ 学习图形编程
我可以很好的回答你这个问题。
因为我从事过图形解码的大型软件开发项目。
我明白你想了解的知识。
我认为,首先你需要把了解图形解码和编程分开去考虑。
另外,常用的图片格式有jpeg,tiff,png等等,不过我认为你应该学习bmp。
因为bmp最简单。其他的格式比这个都难,压缩算法都比较复杂。
因为图片解码最重要的是三个方面,
第一,对于图片的构造很了解,就是说图片头的信息,片段的信息,等等,非常熟悉。
第二,对于图片的内容部分,也就是通常说的RGB数据,常常使用压缩算法进行压缩后存储。所以,相应的,如果想解码,必须会相应的解压缩和压缩算法。这个也有很多文档详细介绍。
第三,对于颜色空间,颜色空间转换的只是需要熟悉。如果你没有太多这方面知识的话,可能认为只有RGB颜色空间,实际上有很多其他的颜色空间,例如,CMYK,YCbCr,Lab等等。当存储的数据是使用非RGB方式存储的时候,常常需要通过转换公式进行转换成RGB。
下面是我对楼主的建议。
首先,你应该寻找关于BMP相关的图形构造的知识。
对BMP的构造进行详细研究,至少需要1周到2周时间。
(参考资料:http://ke..com/view/7671.htm)
先不要学习压缩算法,因为很麻烦。
BMP有一种非压缩模式,就对这种模式尝试进行解码。
其次,需要一定的编码和设计能力。
进行程序设计,将类图和流程图画出来。
接下来,进行程序编码,调试。
最终,程序测试完成。
最后的最后,如果你感兴趣,可以再去研究其他的压缩算法,其他的图片格式。
来丰富你的程序。
但是如果你真的有这么的大的野心的话,估计需要找好几个志同道合的人,开发几年才能完美。
❹ 图形学编程
在三维绘图蓬勃发展的过程中,计算机公司推出了大量的三维绘图软件包。其中SGI公司推出的OpenGL,作为一个性能优越的图形应用程序设计界面(API)异军突起,取得了很大的成就。它以高性能的交互式三维图形建模能力和易于编程开发,得到了Microsoft、IBM、DEC、Sun、HP等大公司的认同。因此,OpenGL已经成为一种三维图形开发标准,是从事三维图形开发工作的必要工具。
1、初始化OpenGL绘图环境
1.1 定义颜色格式和缓冲模式
OpenGL提供两种颜色模式:RGB(RGBA)模式和颜色索引模式(调色板)。在RGBA模式下所有颜色的定义用RGB三个值来表示,有时也加上Alpha值(表示透明度)。RGB三个分量值的范围都在0和1之间,它们在最终颜色中所占的比例与它们的值成正比。如:(1、1、0)表示黄色,(0、0、1)表示蓝色。颜色索引模式下每个象素的颜色是用颜色索引表中的某个颜色索引值表示(类似于从调色板中选取颜色)。由于三维图形处理中要求颜色灵活,而且在阴影,光照,雾化,融合等效果处理中RGBA的效果要比颜色索引模式好,所以,在编程时大多采用RGBA模式。
OpenGL提供了双缓存来绘制图像。即在显示前台缓存中的图像同时,后台缓存绘制第二幅图像。当后台绘制完成后,后台缓存中的图像就显示出来,此时原来的前台缓存开始绘制第三幅图像,如此循环往复,以增加图像的输出速度。
设置窗口显示模式函数:
void auxInitDisplayMode(
AUX_DOUBLE | // 双缓存方式
AUX_RGBA // RGBA颜色模式
);
1.2 设置光源
OpenGL的光源大体分为三种:环境光(Ambient light),即来自于周围环境没有固定方向的光。漫射光(Diffuse light)来自同一个方向,照射到物体表面时在物体的各个方向上均匀发散。镜面光(Specular light)则是来自于同一方向,也沿同一个方向反射。全局环境光是一种特殊的环境光,它不来自特于某种定光源,通常做为场景的自然光源。
指定光源函数:
void glLightfv(
Glenum light, // 光源号
Glenum pname, // 指明光源类型:
// GL_DIFFUSE 光源为漫射光光源
// GL_AMBIENT 光源为环境光光源
// GL_SPECULAR 光源为镜面光光源
const Glfloat* params // 指向颜色向量的指针
);
设置全局环境光函数:
void glLightModelfv(
GL_LIGHT_MODEL_ AMBIENT,
const Glfloat* param // param:指向颜色向量的指针
);
起用光源函数:
void glEnable(GL_LIGHTING);
void glEnable(GL_enum cap); // cap:指明光源号
1.3 设置材质
在OpenGL中,用材料对光的三原色(红绿蓝)的反射率大小来定义材料的颜色。与光源相对应,材料的颜色,也分为环境色,漫反射色和镜面反射色,由此决定该材料对应不同的光呈现出不同的反射率。由于人所看到物体的颜色是光源发出的光经物体反射后进入眼睛的颜色。所以,物体的颜色是光源的环境光,漫反射光和镜面反射光与材料的环境色,漫反射色和镜面反射色的综合。例如:OpenGL的光源色是(LR、LG、LB),材质色为(MR、MG、MB),那么,在忽略其他反射效果的情况下,最终进入眼睛的颜色是(LR*MR、LG*MG、LB*MB)。
材质定义函数:
void glMaterialfv(
GLenum face, // 指明在设置材质的哪个表面的颜色。
// 可以是GL_FRONT、GL_BACK、GL_FRONT_AND_BACK
GLenum pname, // 与光源的pname参数相似
const float* params // 指向材质的颜色向量
);
1.4 定义投影方式
也即选择观察物体的角度和范围。由于我们是三维绘图,所以采用不同的视点和观察范围,就会产生不同的观察效果。由于计算机只能显示二维图形,所以在表示真实世界中的三维图形时,需将三维视景转换成二维视景。这是产生三维立体效果的关键。OpenGL提供了两种将3D图形转换成2D图形的方式。正投影(Orthographic Projection)和透视投影(Perspective Projection)。其中,正投影指投影后物体的大小与视点的远近无关,通常用于CAD设计;而透视投影则符合人的心理习惯,离视点近的物体大,离视点远的物体小。此外,在OpenGL中还要定义投影范围,只有在该范围中的物体才会被投射到计算机屏幕上,投影范围外的物体将被裁减掉。
定义投影范围(不同的投影方式对应不同函数):
void glOrtho(
GLdouble left, GLdouble right,
// (left,bottom,near)及(right,top,far)分别给出正射投
GLdouble bottom, GLdouble top, // 影投影范围的左下角和右上角的坐标。
GLdouble near,GLdouble far);
2、定义与Windows接口的系统函数
2.1 定义绘图窗口的位置
// (x,y)给出窗口左上角坐标
// width及heigh给出窗口的宽高
void auxInitPosition(GLint x,GLint y,GLsizei width, GLsizei heigh);
2.2 定义绘图窗口的标题
// STR表示窗口标题字串
void auxInitWindow(GLbyte* STR);
2.3 定义绘图窗口改变时的窗口刷新函数
// 当窗口改变形状时调指定的回调函数
// NAME表示回调函数名称
void auxReshapeFunc(NAME);
2.4 定义空闲状态的空闲状态函数以实现动画
// 当系统空闲时调用指定的回调函数
// NAME表示回调函数名称
void auxIdleFunc(NAME);
2.5 定义场景绘制函数(当窗口更新或场景改变时调用)
// 当窗口需要更新或场景变化时调用
// NAME表示回调函数名称
void auxMainLoop(NAME);
在VC编辑器下键入下述代码后,保存为后缀是.cpp的C++文件。开始编译,在“The build command requires an active project workspace”。“Would you like to create a default project workspace”? 的提示后,选择“是(Y)”。进入“Project”菜单,选择“Setting”项,弹出“Project Setting”对话框,选择“Link”项,在“Libaray”栏目中加入OpenGL提供的函数库:“opengl32.lib glu32.lib glaux.lib”。(注意:在执行程序时,Windows的system目录下要包含opengl32.dll及glu32.dll两个动态连接库)。附源程序代码:
#include "windows.h"
#include "gl/gl.h"
#include "gl/glaux.h"
#include "gl/glu.h"
#include "math.h"
void myinit()
{
glClearColor(1,1,0,0);
GLfloat ambient[]={.5,.5,.5,0};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient);
GLfloat mat_ambient[]={.8,.8,.8,1.0};
GLfloat mat_diffuse[]={.8,.0,.8,1.0};
GLfloat mat_specular[]={1.0,.0,1.0,1.0};
GLfloat mat_shininess[]={50.0};
GLfloat light_diffuse[]={0,0,.5,1};
GLfloat light_position[]={0,0,1.0,0};
glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,mat_ambient);
glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse);
glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS,mat_shininess);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0,GL_POSITION, light_position);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
}
void CALLBACK display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
auxSolidSphere(1.0); // 绘制半径为1.0的实体球
glFlush(); // 强制输出图像
auxSwapBuffers(); // 交换绘图缓存
_sleep(100);
}
void CALLBACK Idledisplay()
{
// x,y满足x2+y2=0.01。这样可以使物体沿该圆轨迹运动。
static float x=-.1,y=0.0;
static BOOL mark=TRUE;
static float step=.01;
x+=step;
if(x<=.1&&x>=-.1)
{
if(step>0)
y=sqrt(.01-x*x);
else
y=-sqrt(.01-x*x);
glTranslatef(x,y,0);
}
else
{
step=0-step;
}
display();
}
void CALLBACK myReshape(GLsizei w,GLsizei h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho(-3.5,3.5,-3.5*(GLfloat)w/(GLfloat)h, 3.5*(GLfloat)w/(GLfloat)h,-10,10);
else
glOrtho(-3.5*(GLfloat)w/(GLfloat)h,3.5* (GLfloat)w/(GLfloat)h,-3.5,3.5,-10,10);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void main()
{
auxInitDisplayMode(AUX_DOUBLE|AUX_RGBA);
auxInitPosition(0,0,400,400);
auxInitWindow(" circle ");
myinit();
auxReshapeFunc(myReshape);
auxIdleFunc(Idledisplay);
auxMainLoop(display);
}
给你一个关于VC和OPENGL的网站,不错的
http://dev.yesky.com/402/2084902.shtml
❺ 怎样用c语言编程图片
C语言图形界面编程,可以使用windows API,图形库等的支持。详细的,你只能再详细问。
❻ 数控图片编程大全
数控车床编程基础简介1.公制(米制)与英制编程
数控车床使用的长度单位量纲有公制(米制)和英制两种,由专用的指令代码设定长度单位量纲,如FANUC-0TC系统用G20表示使用英制单位量纲,G21表示使用公制(米制)单位量纲。系统通电开机后,机床自动处于公制尺寸状态。
2.直径编程和半径编程
(1)直径编程:采用直径编程时,数控程序中X轴的坐标值即为零件图上的直径值。
(2)半径编程:采用半径编程,数控程序中X轴的坐标值为零件图上的半径值。考虑使用上的方便,一般采用直径编程。CNC系统缺省的编程方式为直径编程。
a)直径编程
b)半径编程
图1 数控车削编程分类
a) A:(30.0,80.0),B:(40.0,60.0)
b) A:(15.0,80.0),B:(20.0,60.0)
3.车床的前置刀架与后置刀架
数控车床刀架布置有两种形式:如图2所示
图2 车床的前置刀架与后置刀架
(1)前置刀架。前置刀架位于Z轴的前面,与传统卧式车床刀架的布置形式一样,刀架导轨为水平导轨,使用四工位电动刀架;
(2)后置刀架。后置刀架位于Z轴的后面,刀架的导轨位置与正平面倾斜,这样的结构形式便于观察刀具的切削过程、切屑容易排除、后置空间大,可以设计更多工位的刀架,一般多功能的数控车床都设计为后置刀架。
4.刀尖半径补偿
在数控车削编程中为了编程方便,把刀尖看作为一个尖点,数控程序中刀具的运动轨迹即为该假想尖点的运动轨迹。(如图3所示)
图3 假想刀尖与刀尖半径
数控系统中引入了刀尖半径补偿: 在数控程序编写完成后,将已知刀尖半径值输入刀具补偿表中,程序运行时数控系统会自动根据对应刀尖半径值对刀具的实际运动轨迹进行补偿。
数控加工中一般都使用可转位刀片,每种刀片的刀尖圆角半径是一定的,选定了刀片的型号,对应刀片的刀尖圆角半径值即可确定。
刀尖圆弧半径补偿指令:
指令格式 G41(G42、G43)G01(G00)X(U)_Z(W)
指令功能 G41为刀尖圆弧半径左补偿;
G42为刀尖圆弧半径右补偿;
G40是取消刀尖圆弧半径补偿。
指令说明 顺着刀具运动方向看,刀具在工件的左边为刀尖圆弧半径左补偿;刀具在工件的右边为刀尖圆弧半径右补偿。只有通过刀具的直线运动才能建立和取消刀尖圆弧半径补偿。
5.数控机床的初始状态
初始状态: 指数控机床通电后具有的状态,也称为数控系统内部默认的状态,一般设定绝对坐标方式编程、使用米制长度单位量纲、取消刀具补偿、主轴和切削液泵停止工作等状态作为数控机床的初始状态。 不过数控编程是最重要的。 目前国内这内技术人才。真正重要的不多。不过这个学会。很有用的。 然后编程学会。把CAD精通下。 因为CAD画图出来。它精确之后。 你数控编程才好。
❼ 图形编程是什么
图形编程的概念很广,有UI编程,还有游戏编程,游戏编程又分为2D游戏、3D游戏等。有人觉得游戏不是一门艺术,因为受众也是参与者;有人觉得游戏是一门艺术,尤其是一门交互艺术。创造游戏的人和游戏的受众,都在虚拟世界中沉迷。
UI编程也如是,早期PC机上,人们在厌倦了XP风格的界面后,争先恐后的用GDI+技术产出了各种各样的UI风格。这种风格的UI界面不但美观而且安全。
其安全性在于,使用GDI+技术绘制的UI控件,不在Windows系统本身控制范围内,所以任何检测工具都无法检测到其存在,这使得UI入侵的难度变高。
图形与数据:
图形界面编程是在与机器做抗争,而数据编程是在与人做抗争。数据,是人产生的,所以数据编程是对人的编程。人产生的数据千变万化,一套代码无法适应持续波动的数据,但是经过一系列算法,过滤,检测后,最终得出的结果却是十分客观的。
这是一个奇妙的事情,甚至可以上升到哲学层面。对机器编程产生主观结果,对人编程产生客观结果。如果按照这个理论,那么上面那位说自己喜欢“算出东西”的同学,则是一个标准的理科生思维,而喜欢图形编程的同学,则是人文和技术兼备的创作家。
❽ 图形编程语言有哪几种
三围的图形编程一般就采用两种主流技术,都和显卡的支持相关。三维技术是需要硬件提供支持的,因为显卡可以提供强大的硬件处理能力来帮助我们完成矩阵计算。
OpenGL是目前用的最多的图形库,旗下又有用于手机和平板的以及网页应用的OpenGL ES精简版本。支持的语言总类众多,其中主流语言有:C++,Java,Javascript,C#,Objective-C。
DirectX3D主要是用于windows系统。它是由微软公司开发的一套程序库。主要用于windows游戏开发,和windows平台的仿真软件开发。支持的语言也有很多:C++,Java,C#都支持
学哪一种看你喜欢什么样的平台以及以后用于什么目的。各种系统上以及各种语言的library变种和打包版本都各不相同。
❾ 什么是图形化编程编程语言是什么
图形化编程就是编写有界面的程序,编程语言是一种被标准化的交流技巧,用来向计算机发出指令,定义计算机程序。
一、图形化编程
1、使用图形化编程可以进行良好的页面布局,在现有的很多Web应用中,其应用程序的页面布局经常需要使用图像,这样能够让页面整体效果更加友好。用户会对界面友好的应用程序印象深刻从而会进行回访。
2、在页面布局中,很多设计人员喜欢使用CSS设计,这样能够简化页面代码,将页面布局代码和页面代码相分离,从而提高了维护性。
二、编程语言
1、允许程序员准确地定义计算机需要使用的数据以及在不同情况下要采取的行动。在不断的发展和变化过程中,从最初的机器语言到2500多种高级语言,每种语言都有其特定的目的和不同的发展道路。
2、编程语言不像人类自然语言的发展和变化那样缓慢和持久,它的发展是相当迅速的。这主要是因为计算机硬件、互联网和IT产业的发展促进了编程语言的发展。
(9)图片编程扩展阅读:
编程语言选用技巧
1、在选择编程语言之前,应充分考虑项目的总体框架,以确定编程语言的分布。因为整个项目的所有部分都是用一种语言写的。在一些项目中,可以相对简单地选择最佳编程语言,但是编程过程是灵活多变的。最佳语言选择需要根据程序要求进行更改。
2、在科学合理的原则下,我们应该选择最熟悉的编程语言。因为开发人员熟悉某种语言,他们可以极大地帮助他们预测开发时间、过程和其他内容,这可以很好地避免大的变化,提高编程效率。
3、对于高成本操作,如加密、图形渲染、视频处理和其他内容操作,应给予充分考虑。对于这些高成本的操作模块,开发人员应该选择需要编译的静态语言。JAVA和C#是最好的选择。
参考资料来源:网络-编程语言