版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 操作系统实验报告姓名:* 学号:1105413440 专业班级:集成112 课题:Linux系统的基本操作及常用命令实验一 Linux系统的基本操作及常用命令1.1.1 实验目的学习如何安装和使用Linux操作系统。熟悉Linux操作系统的常用基本命令。1.1.2 实验内容学习VMware软件的使用以及在VMware下安装Ubuntu操作系统。启动系统:通过虚拟机启动Linux系统。熟悉Ubuntu操作系统的使用界面和各项功能。目录操作(分别通过命令和鼠标操作完成,写出相应的命令)。熟悉文件操作命令。熟悉系统询问与权限命令。熟悉进程操作命令。熟悉一些其他常用命令。1.1.3实验步骤Linux
2、的登陆与退出本地登录Linux操作系统(1)双击桌面上的VMware Workstation图标,运行虚拟机。(2)建立一台虚拟机。单击 文件(file)新建(new)新建虚拟机(new virtual machine)命令,弹出虚拟机创建菜单。(3)根据向导完成虚拟机的创建(4)在客户操作系统(Guest operating system)中选择Linux,单击NEXT 按钮。(5)在虚拟机名字中键入自己想建立的名字。(6)在位置中选择虚拟机安装位置。(7)如果需要网络就选择一个合适的网络环境。(8)点击finish按钮,返回主界面。登录: 双击桌面上的VMware Workstation图
3、标,运行虚拟机软件,找到左列下 拉菜单中Ubuntu图标,点击绿色箭头启动Linux操作系统。单击用户名 输入登录密码。成功登录Ubuntu主界面。退出: 如果要退出系统,单击右上角用户名,选择shut down命令关闭系统。Linux命令格式Linux系统中bash命令的一般格式是:命令名【选项】【处理对象】例:$ ls -la mydir使用bash命令时,应注意一下几点:命令名一般是小写的英文字母。注意大小写有区别。一般格式由方括号括起来的是可选的。选项是对命令的特别定义,以减号“”开始,命令名,选项,处理 对象三者之间用空格隔开。命令后加上“&”可使该命令后台执行。目录之间的分隔为(/
4、)区别于DOS中().Linux操作系统的联机帮助对每个命令的准确语法都做了详细的说明。命令输入方式 在shell提示符“$”之后,可以输入相应的命令和参数,最后必须按Enter 键予以确认。Shell会读取该命令并予以执行。命令完成后,屏幕将再次 显示提示符“$”.。目录操作命令Linux文件系统采用树状目录管理结构,即只有一个根目录,其中含有下级子目录或文件信息。主目录往往位于/home或者/user目录之下,例如/home/user。路径名描述了文件系统通向任意文件的路径。有两种路径名:绝对路径名和相对路径名。绝对路径名:从根目录开始到达相应文件的所有目录名连接而成,各目录名之间以“/”
5、隔开。相对路径名:是相对于当前工作路径指定一个文件。当访问当前工作目录或其子目录中的文件时,可以使用相对路径。显示目录内容:ls命令-a列出指定目录下所有子目录和文件,包括以“”开头的隐藏文件-t按照文件最后修改时间的新旧顺序,最新的文件列在前面。-F显示出当前目录下的文件及其类型。在列出的文件名后面加上不同的符号,以区分不同类型的文件,可以附加的符号有:“/”表示目录“*”表示可执行文件。-R递归地列出该目录及其子目录下的文件信息。-l显示目录下所有文件类型与权限链接数文件主文件组文件大小建立或最近修改时间及文件名。实验结果如下:创建目录:mkdir命令格式:mkdir选项dirname常用
6、选项:-p可在指定目录下逐级创建目录。-m创建指定目录的同时设置该目录存取权限,权限用八进制数字表示。实验结果如下:删除目录:rmdir命令格式:rmdir选项dirname常用选项:-p递归删除指定目录下所有空目录,如果有非空目录,则该目录保留下来。实验结果如下:改变工作目录:cd命令格式:cd dirnamedirname表示目标目录的绝对路径或相对路径名cd .改变目录位置,至当前目录的上层目录cd -回到进入当前目录前的上一个目录cd /home/jiangliangchao改变目录位置,至绝对路径/home/jiangliangchao实验结果如下:显示当前工作目录的绝对路径:pwd
7、命令实验结果如下:文件操作命令查看文件内容:cat命令格式:cat选项filename-b从1开始对所有非空输出进行编号-n从1开始对所有输出进行编号-s将多个相邻的空行进行合并成一个空行实验内容如下:删除文件:rm命令格式:rm选项name-f忽略不存在的文件,并且不给提示信息-r递归删除指定目录及其下属的各级子目录和文件-i交互式删除文件。系统提示是否删除文件,输入y确定。实验结果如下:复制文件或目录:cp命令格式:cp选项source target-i交互式复制,覆盖已存在的目标文件之前给出提示信息。-p除复制源文件的内容外,还将其修改时间和存取权限也复制到 新文件中。-r把源目录下的所
8、有文件及其各级子目录都复制到目标位置。-l不复制文件,而是创建指向源文件的链接文件,链接文件名由 目标文件给出。实验结果如下:错误原因:输错文件名。移动或更改文件、目录名称:mv命令 格式:mv选项source target实验结果如下:比较文件或目录的内容:diff命令格式:diff选项name1 name2常用选项:-i忽略字母大小写造成的差别-r当name1和name2同为目录名时,递归比较两个目录,列出他们的不同之处。实验结果如下:文件中字符串的查找:grep命令格式:grep选项查找模式name常用选项:-i匹配比较时不区分字母的大小写。-r以递归方式查询目录下的所有子目录中的文件。
9、实验结果如下:建立文件或目录的链接:ln命令ln选项target link_nameTarget是连接的对象,可是文件也可是目录。常用选项:-s建立符号链接,而不是硬链接。实验结果如下:系统询问与权限命令 1)查看系统中的使用者:who命令 格式:who选项am i-q仅显示用户名及用户总数-H显示信息时间时显示各列的标题am I是该命令的一种常用方式,显示本用户终端的相关信息。实验结果如下:改变自己的username的账号与口令:su命令实验结果如下:改变文件或目录的存取权限:chmod命令格式:chmod选项who操作符号modename常用选项:R为递归处理 who可以是u,g,o,a。
10、操作符号可以是:”+”添加权限”-”取消权限“=”赋予给定权限并取消其他权限。rread数字代号“4”。wwrite,数字代号“2”。xexecute,数字代号“1”。实验结果如下:改变文件或目录的所有权:chown命令格式:chown选项username name说明:该命令用来改变指定文件所属的用户组。常用选项:-R递归式改变指定目录及其下面的所有子目录和文件用户组。实验结果如下:检查用户所在组名称:groups命令实验结果如下:改变文件或目录所属的用户组:chgrp命令常用选项:-R递归式改变指定目录及其下面的所有子目录和文件的用户组。实验结果如下:改变文件或目录的最后修改时间:touc
11、h命令格式:touch name实验结果如下:进程操作命令查看系统目前正在运行的进程信息:ps命令格式:ps选项实验结果如下常用选项:-e显示所有进程的信息。-f显示进程的所有信息。查看正在后台执行的进程:jobs命令实验结果如下:结束或终止进程:kill命令格式:kill-9PID实验结果如下:后台执行进程的命令:&说明:在命令后加上&实验结果如下注意:按下Ctrl+Z组合键,暂停前台正在执行的进程。输入bg,将暂停的进程注入后台中继续执行。显示系统中程序的执行状态:top命令按下Ctrl+C组合键或Q键停止查看实验结果如下:-i不显示任何僵死的或闲置的进程。-nn为时间间隔以树状图显示执行
12、的程序:pstree命令-p以树状图显示进程以及进程ID-a以树状图显示进程,相同名称进程不合并显示,并且会显示命令行参数Pid以树状图显示进程ID为pid的进程以及子孙进程。实验结果如下:监视虚拟内存:vmstat命令对系统的虚拟内存,进程,cpu活动进行监视实验结果如下:分析共享内存、信号量和消息队列:ipcs命令说明:ipcs是显示进程间通信设施状态的命令。可以显示消息队列,共享内存和信号量的信息。-q仅显示所有队列使用情况-m仅显示共享内存使用情况-s仅显示所有信号量使用情况。实验结果如下:删除共享内存、信号量和消息队列:ipcrm命令说明:ipcrm是linux下删除进程间通信设施的
13、命令。常用选项:-q仅删除指定ID的消息队列。-m仅删除指定Id的共享内存。-s仅删除指定id的信号量。实验结果如下:错误说明:当前没有进程间通信设施。其他常用命令命令在线帮助:man命令man ls实例如下清除屏幕上的信息:clear命令。屏幕被清除到初始状态。显示历史命令:history命令实验结果如下:快速重复执行上一条历史命令(使用上方向键并按enter)从命令历史中执行一个指定的命令:输入“!数字”并按Enter键执行。实验结果如下: 1.1.4实验总结 通过本次试验是我认识了Linux操作系统及其常用的基本命令。认识到了命令操作的简便性,快捷性,以及linux操作系统的方便性。但是
14、Linux命令操作要求比较高,需要非常准确的记住各种命令,一旦记错就不会准确执行。但是其中也有帮助和提示。关于Linux的操作还需多加训练,提高熟练度。附录资料:不需要的可以自行删除 C语言曲线函数像素函数putpixel() 画像素点函数 getpixel()返回像素色函数 直线和线型函数line() 画线函数 lineto() 画线函数 linerel() 相对画线函数 setlinestyle() 设置线型函数 getlinesettings() 获取线型设置函数 setwritemode() 设置画线模式函数 多边形函数HYPERLINK /view/553113.htmrectang
15、le() 画矩形函数 bar() 画条函数 bar3d() 画条块函数 drawpoly() 画多边形函数 圆、弧和曲线函数getaspectratio()获取纵横比函数 circle()画圆函数 arc() 画圆弧函数 ellipse()画HYPERLINK /view/36981.htm椭圆弧函数 fillellipse() 画椭圆区函数 pieslice() 画扇区函数 sector() 画椭圆扇区函数 getarccoords()获取圆弧坐标函数 填充函数setfillstyle() 设置填充图样和颜色函数 setfillpattern() 设置用户图样函数 floodfill() 填
16、充闭域函数 fillpoly() 填充多边形函数 getfillsettings() 获取填充设置函数 getfillpattern() 获取用户图样设置函数 图像函数imagesize() 图像存储大小函数 getimage() 保存图像函数 putimage() 输出图像函数 图形和图像函数对许多图形HYPERLINK /view/330120.htm应用程序,直线和HYPERLINK /view/400.htm曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的
17、原有图形进行叠加。 (一) 像素函数putpixel() 画像素点函数功能: 函数putpixel() 在图形模式下屏幕上画一个像素点。 用法: 函数调用方式为void putpixel(int x,int y,int color); 说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。 此函数相应的HYPERLINK /view/668911.htm头文件是graphics.h 返回值: 无 例: 在屏幕上(6,8)处画一个红色像素点: putpixel(6,8,RED); getpixel()返回像素色函数功能: 函数getpixel()返
18、回像素点颜色值。 用法: 该函数调用方式为int getpixel(int x,int y); 说明: 参数x,y为像素点坐标。 函数的返回值可以不反映实际彩色值,这取决于HYPERLINK /view/1120949.htm调色板的设置情况(参见setpalette()函数)。 这个函数相应的头文件为graphics.h 返回值: 返回一个像素点色彩值。 例: 把屏幕上(8,6)点的像素颜色值赋给变量color。 color=getpixel(8,6); (二) 直线和线型函数有三个画直线的函数,即line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口
19、,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。 有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。 line() 画线函数功能: 函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。 用法: 该函数调用方式为void line(int startx,int starty,int endx,int endy); 说明: 参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般
20、不可见)当前位置不改变。 此函数相应的头文件为graphics.h 返回值: 无 例: 见函数60.linerel()中的实例。 lineto() 画线函数功能: 函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。 用法: 此函数调用方式为void lineto(int x,int y); 说明: 参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。 该函数对应的头文件为graphics.h 返回值: 无 例: 见函数60.linerel()中的实例。 linerel() 相对画线函数功能: 函数linerel() 使用当前绘图色、线型及线宽,从当
21、前位置开始,按指定的水平和垂直偏移距离画一直线。 用法: 这个函数调用方式为void linerel(int dx,int dy); 说明: 参数dx,dy分别是水平偏移距离和垂直偏移距离。 函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。 返回值:无 例: 下面的程序为画线函数调用实例: #i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); setcolor(15); line
22、(66,66,88,88); lineto(100,100); linerel(36,64); getch(); restorecrtmode(); setlinestyle() 设置线型函数功能: setlinestyle() 为画线函数设置当前线型,包括线型、线图样和线宽。 用法: setlinestyle() 函数调用方式为void setlinestyle(int stly,unsigned pattern,int wigth); 说明: 参数style为线型取值,也可以用相应名称表示,如表1-10中所示。 参数pattern用于自定义线图样,它是16位(bit)字,只有当style=
23、USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0 xFFFF,则画实线;pattern=0 x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0 xFF00和0 xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。 参数wigth用来设定线宽,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。 若用非法参数调用setlinestyle()函数,那么graphr
24、esult()会返回错误代码,并且当前线型继续有效。 Turbo C提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。 表1-10 线型 名称取值含义SOLID_LINE0实线DOTTED_LINE1点线CENTER_LINE2中心线DASHED_LINE3虚线USERBIT_LINE4用户自定义线型表1-11 线宽 名 称取 值说 明NORM_WIDTH(常宽)1一个像素宽(缺省值)THICK_WIDTH(加宽)3三个像素宽这个函数的头文件是graphics.h 返回值: 无 例: 下面的程序显示了BC中所提供的线型图样: #i nclude
25、 void main() int driver,mode;i; driver=DETECT; mode=0; initgraph(&driver,&mode,); for(i=0;i4;i+) setlinestyle(i,0,1); line(i*50,200,i*50+60,200) ; getch(); restorecrtmode(); getlinesettings() 获取线型设置函数功能: 函数getlinesettings() 用当前设置的线型、线图样和线宽填 写linesettingstype型结构。 用法: 函数调用方式为void getlinesettings(struc
26、t linesettingstype *info); 说明: 此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。 linesettingstype型结构定义如下: struct linesettingstype int linestyle; unsigned upattern; int thickness; ; 其中linestyle用于存放线型,线型值为表1-10中的各值之一。 upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。 thickness为线宽值存放的变量,可参
27、见表1-11。 getlinesettings()函数对应的头文件为graphics.h 返回值: 返回的线型设置存放在info指向的结构中。 例: 把当前线型的设置写入info结构: struct linesettingstype info; getlinesettings(&info); setwritemode() 设置画线模式函数功能: 函数setwritemode() 设置画线模式 用法: 函数调用方式为 void setwritemode()(int mode); 说明: 参数mode只有两个取值0和1,若mode为0,则新画的线将覆盖屏幕上原有的图形,此为缺省画线输出模式。如果m
28、ode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。 setwritemode()函数对应的头文件是graphics.h 返回值: 无 例: 设置画线输出模式为0: setwritemode(0); (三)、多边形函数对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。最常见的多边形有矩形、矩形块(或称条形)、多边形和多
29、边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。下面直接介绍画多边形的函数。 rectangle() 画矩形函数功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。 用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom); 说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形
30、部分才被画出。 这个函数对应的头文件为graphics.h 返回值: 无 例: 下面的程序画一些矩形实例: #i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); rectangle(80,80,220,200); rectangle(140,99,180,300); rectangle(6,6,88,88); rectangle(168,72,260,360); getch(); restorecrtmode(); bar() 画条函数功能: 函数bar()用当前填充图样
31、和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四条边线)。 用法: bar()函数调用方式为void bar(int left,int top,int right,int bottom); 说明: 参数left,topright,bottom分别为左上角坐标与右下角坐标,它们和调用函数rectangle()的情形相同,调用此函数前,可用setfillstyle()或setfillpattern()设置当前填充图样和填充色。 注意此函数只画没有边线的条形,如果要画有边线的的条形,可调用下面的函数bar3d()来画,并将深度参数设为0,同时topfla
32、g参数要设置为真,否则该条形无顶边线。 这 应的头文件为graphics.h 返回值: 无 例: 见函数bar3d()中的实例。 bar3d() 画条块函数功能: 函数bar3d() 使用当前绘图色、线型及线宽画出三维长方形条块,并用当前填充图样和填 充色填充该三维条块的表面。 用法: 此函数调用方式为void bar3d(int left,int top,int right,int bottom,int depth,int topflag); 说明: 参数left,top,right,bottom分另为左上角与右下角坐标,这与bar()函数中的一样。参数depth为条块的深度,以像素为单位,
33、通常按宽度的四分之一计算。深度方向通过屏显纵横比调节为约45度(即这时x/y比设置为1:1)。 参数topflag相当于一个HYPERLINK /view/46060.htm布尔参数,如果设置为1(真)那么条块上放一顶面;若设置为0(假),则三维条形就没有顶面,这样可使多个三维条形叠加在一起。 要使图形更加美观,可利用函数floodfill()或setfillpattern()来选择填充图样和填充色(参见本小节(五)填充函数 )。 bar3d()函数对应的头文件为graphics.h 返回值: 无 例: 下面的程序画一个条形和条块: #i nclude void main() int driv
34、er,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); setfillstyle(SOLID-FILL,GREEN); bar(60,80,220,160); setfillstyle(SOLID-FILL,RED); bar3d(260,180,360,240,20,1); getch(); restorecrtmode(); drawpoly() 画多边形函数功能: 函数drawpoly() 用当前绘图色、线型及线宽,画一个给定若干点所定义的多边形。 用法: 此函数调用方式为void drawpoly(int pnumber,i
35、nt *points); 说明: 参数pnumber为多边形的顶点数;参数points指向整型HYPERLINK /view/209670.htm数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,x坐标值在前。显然整型数组的维数至少为顶点数的2倍,在定义了多边形所有顶点的数组polypoints时,顶点数目可通过计算sizeof(polypoints)除以2倍的sizeof(int)得到,这里除以2倍的原因是每个顶点有两个整数坐标值。另外有一点要注意,画一个n个顶点的闭合图形,顶点数必须等于n+1,并且最后一点(第n+1)点坐标必须等于第一点的坐标。 drawpoly()函数对应
36、的头文件为grpahics.h 返回值: 无 例: 下面的程序画一个封闭星形图与一个不封闭星形图: #i nclude void main() int driver,mode; static int polypoints118=100,100,110,120,100,130,120,125,140,140,130,120, 140,110,120,115,100,100; static int polypoints218=180,100,210,120,200,130,220,125,240,140,230,120, 240,110,220,115,220,110; driver=DETECT
37、; mode=0; initgraph(&driver,&mode,); drawpoly(9,polypoints1); drawpoly(9,polypoints2); getch(); restorecrtmode(); (四)、 圆、弧和曲线函数在一个屏幕上画得很圆的图形到另一个屏幕上可能被压扁或拉长,这是因为每一种显示卡与之相应的显示模式都有一个纵横比。纵横比是指像素的水平方向大小与垂直方向大小的比值。如VGA显示卡由于偈素基本上是正方形,所以纵横比为1.000。 为了保证几何图形基本按预计情况显示在屏幕上,用屏显的纵横比来计算和纠正不同硬件及显示卡产生的畸变。计算纵横比所需要的水平
38、方向和垂直方向的比例系数可调用函数getaspectratio()获得。 getaspectratio()获取纵横比函数功能: 函数getaspectratio()返回x方向和y方向的比例系数,用这两个整型值可计算某一特定屏显的纵横比。 用法: 此函数调用方式为void getaspectratio(int xasp,int yasp); 说明: 参数xasp指向的变量存放返回的x方向比例系数;参数yasp指向的变量存放返回的y方向比例系数。通常y方向比例系数为10 000, x方向比例系数不大于10 000(这是因为大多数屏幕像素高比宽长)。 注意纵横比自动用作下面函数arc(),circl
39、e()和pieslice()中的标尺因子,使屏幕上圆或弧正常显示。但用ellipse()函数画椭圆必须调用本函数获取纵横比作为标尺因子,否则不予调整。纵横比可用于其它几何图形,目的是校正和显示图形。 getaspectratio()函数对应的头文件为graphics.h 返回值: 返回x与y方向比例系数分别存放在xasp和yasp所指向的变量中。 例: 下面的程序显示纵横比: int xasp,yasp; float aspectratio; getaspectratio(&xasp,&yasp); aspectratio=xasp/yasp; printf(aspect ratio: %f,
40、aspectratio); circle()画圆函数功能: 函数circle()使用当前绘图色并以实线画一个完整的圆。 用法:该函数调用方式为void circle(int x,int y,int radius); 说明: 参数x,y为圆心坐标,radius为圆半径,用像素个素表示。注意,调用circle()函数画圆时不用当前线型。 不同于ellipse()函数,只用单个半径radius参数调用circle()函数,故屏显纵横比可以自动调节,以产生正确的显示图。 此函数对应的头文件为graphics.h 返回值: 无 例: 画六个同心圆,圆心在(100,100)。 #i nclude void
41、 main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); circle(100,100,10); circle(100,100,20); circle(100,100,30); circle(100,100,40); circle(100,100,50); circle(100,100,60); getch(); restorecrtmode(); arc() 画圆弧函数功能: 函数arc()使用当前绘图色并以实线画一圆弧。 用法: 函数调用方式为void arc(int x,int y,int sta
42、rtangle,int endangle,int radius); 说明: 参数x,y为圆心坐标,startangle与endangle分别为起始角与终止角,radius为半径。圆心坐标和半径以像素个数给出,起始角和终止角以度为单位,0度位于右边,90度位于顶部,180度位于左边,底部是270度。同往常一样,360度与0度重合。角度按逆时针方向增加,但并不要求终止角一定比起始角大。例如指定300度和90度分别为起始角和终止角,与指定300度和450度分别为起始角和终止角可画出相同的弧。大于360度可作为参数,它将被化到0度360度范围里。函数arc()能画封闭圆,只要取起始角为0度,终止角为3
43、60度即可。此函数中,屏显纵横比可自动调节。 arc()函数对应的头文件为graphics.h 返回值: 无 例: 以(200,200)为圆心,100为半径,从0度到120度画圆弧: #i ncludegraphics.h void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); setcolor(WHITE); arc(200,200,0,120,100); getch(); restorecrtmode(); graphics.h头文件的内容:/* graphics.h Definition
44、s for Graphics Package. Copyright (c) Borland International 1987,1988 All Rights Reserved. */ #if _STDC_ #define _Cdecl #else #define _Cdecl cdecl #endif #if !defined(_GRAPHX_DEF_) #define _GRAPHX_DEF_ enum graphics_errors /* graphresult error return codes */ grOk = 0, grNoInitGraph = -1, grNotDetec
45、ted = -2, grFileNotFound = -3, grInvalidDriver = -4, grNoLoadMem = -5, grNoScanMem = -6, grNoFloodMem = -7, grFontNotFound = -8, grNoFontMem = -9, grInvalidMode = -10, grError = -11, /* generic error */ grIOerror = -12, grInvalidFont = -13, grInvalidFontNum = -14, grInvalidVersion = -18 ; enum graph
46、ics_drivers /* define graphics drivers */ DETECT, /* requests autodetection */ CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, /* 1 - 6 */ HERCMONO, ATT400, VGA, PC3270, /* 7 - 10 */ CURRENT_DRIVER = -1 ; enum graphics_modes /* graphics modes for each driver */ CGAC0 = 0, /* 320 x200 palette 0; 1 page */ C
47、GAC1 = 1, /* 320 x200 palette 1; 1 page */ CGAC2 = 2, /* 320 x200 palette 2: 1 page */ CGAC3 = 3, /* 320 x200 palette 3; 1 page */ CGAHI = 4, /* 640 x200 1 page */ MCGAC0 = 0, /* 320 x200 palette 0; 1 page */ MCGAC1 = 1, /* 320 x200 palette 1; 1 page */ MCGAC2 = 2, /* 320 x200 palette 2; 1 page */ M
48、CGAC3 = 3, /* 320 x200 palette 3; 1 page */ MCGAMED = 4, /* 640 x200 1 page */ MCGAHI = 5, /* 640 x480 1 page */ EGALO = 0, /* 640 x200 16 color 4 pages */ EGAHI = 1, /* 640 x350 16 color 2 pages */ EGA64LO = 0, /* 640 x200 16 color 1 page */ EGA64HI = 1, /* 640 x350 4 color 1 page */ EGAMONOHI = 0,
49、 /* 640 x350 64K on card, 1 256K on card, 4 pages */ HERCMONOHI = 0, /* 720 x348 2 pages */ ATT400C0 = 0, /* 320 x200 palette 0; 1 page */ ATT400C1 = 1, /* 320 x200 palette 1; 1 page */ ATT400C2 = 2, /* 320 x200 palette 2; 1 page */ ATT400C3 = 3, /* 320 x200 palette 3; 1 page */ ATT400MED = 4, /* 64
50、0 x200 1 page */ ATT400HI = 5, /* 640 x400 1 page */ VGALO = 0, /* 640 x200 16 color 4 pages */ VGAMED = 1, /* 640 x350 16 color 2 pages */ VGAHI = 2, /* 640 x480 16 color 1 page */ PC3270HI = 0, /* 720 x350 1 page */ IBM8514LO = 0, /* 640 x480 256 colors */ IBM8514HI = 1 /*1024x768 256 colors */ ;
51、/* Colors for setpalette and setallpalette */ #if !defined(_COLORS) #define _COLORS enum COLORS BLACK, /* dark colors */ BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, /* light colors */ LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE ; #endif enum CGA_COLORS CG
52、A_LIGHTGREEN = 1, /* Palette C0 Color Names */ CGA_LIGHTRED = 2, CGA_YELLOW = 3, CGA_LIGHTCYAN = 1, /* Palette C1 Color Names */ CGA_LIGHTMAGENTA = 2, CGA_WHITE = 3, CGA_GREEN = 1, /* Palette C2 Color Names */ CGA_RED = 2, CGA_BROWN = 3, CGA_CYAN = 1, /* Palette C3 Color Names */ CGA_MAGENTA = 2, CG
53、A_LIGHTGRAY = 3 ; enum EGA_COLORS EGA_BLACK = 0, /* dark colors */ EGA_BLUE = 1, EGA_GREEN = 2, EGA_CYAN = 3, EGA_RED = 4, EGA_MAGENTA = 5, EGA_BROWN = 20, EGA_LIGHTGRAY = 7, EGA_DARKGRAY = 56, /* light colors */ EGA_LIGHTBLUE = 57, EGA_LIGHTGREEN = 58, EGA_LIGHTCYAN = 59, EGA_LIGHTRED = 60, EGA_LIG
54、HTMAGENTA = 61, EGA_YELLOW = 62, EGA_WHITE = 63 ; enum line_styles /* Line styles for get/setlinestyle */ SOLID_LINE = 0, DOTTED_LINE = 1, CENTER_LINE = 2, DASHED_LINE = 3, USERBIT_LINE = 4, /* User defined line style */ ; enum line_widths /* Line widths for get/setlinestyle */ NORM_WIDTH = 1, THICK
55、_WIDTH = 3, ; enum font_names DEFAULT_FONT = 0, /* 8x8 bit mapped font */ TRIPLEX_FONT = 1, /* Stroked fonts */ SMALL_FONT = 2, SANS_SERIF_FONT = 3, GOTHIC_FONT = 4 ; #define HORIZ_DIR 0 /* left to right */ #define VERT_DIR 1 /* bottom to top */ #define USER_CHAR_SIZE 0 /* user-defined char size */
56、enum fill_patterns /* Fill patterns for get/setfillstyle */ EMPTY_FILL, /* fills area in background color */ SOLID_FILL, /* fills area in solid fill color */ LINE_FILL, /* fill */ LTSLASH_FILL, /* / fill */ SLASH_FILL, /* / fill with thick lines */ BKSLASH_FILL, /* fill with thick lines */ LTBKSLASH
57、_FILL, /* fill */ HATCH_FILL, /* light hatch fill */ XHATCH_FILL, /* heavy cross hatch fill */ INTERLEAVE_FILL, /* interleaving line fill */ WIDE_DOT_FILL, /* Widely spaced dot fill */ CLOSE_DOT_FILL, /* Closely spaced dot fill */ USER_FILL /* user defined fill */ ; enum putimage_ops /* BitBlt opera
58、tors for putimage */ COPY_PUT, /* MOV */ XOR_PUT, /* XOR */ OR_PUT, /* OR */ AND_PUT, /* AND */ NOT_PUT /* NOT */ ; enum text_just /* Horizontal and vertical justification for settextjustify */ LEFT_TEXT = 0, CENTER_TEXT = 1, RIGHT_TEXT = 2, BOTTOM_TEXT = 0, /* CENTER_TEXT = 1, already defined above
59、 */ TOP_TEXT = 2 ; #define MAXCOLORS 15 struct palettetype unsigned char size; signed char colorsMAXCOLORS+1; ; struct linesettingstype int linestyle; unsigned upattern; int thickness; ; struct textsettingstype int font; int direction; int charsize; int horiz; int vert; ; struct fillsettingstype int
60、 pattern; int color; ; struct pointtype int x, y; ; struct viewporttype int left, top, right, bottom; int clip; ; struct arccoordstype int x, y; int xstart, ystart, xend, yend; ; void far _Cdecl arc(int x, int y, int stangle, int endangle, int radius); void far _Cdecl bar(int left, int top, int righ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双方担保虚拟现实内容创作与分发合同2024年3篇
- 2024年度智能零售系统开发与运营合同
- 2024年度版权许可合同:某音乐平台版权许可项目3篇
- 2024年度抗旱减灾设施建设合同
- 2024年医疗设备经销协议版A版
- 2024年度城市基础设施建设项目合同项目范围与投资金额2篇
- 二零二四年度宠物服务咨询合同3篇
- 2024年度安全生产及环境保护合作协议版B版
- 2024年度大型工程项目水泥采购合同3篇
- 2024年度版权管理与保护合同
- 诊所抗菌药物管理制度
- 半导体专业术语English
- 核苷酸代谢 完整版
- 多功能酶标仪等设备用户需求书
- 人教版九上语文(2018部编版)-读读写写看拼音写汉字(4-6单元)
- 部编版《道德与法治》四年级上册第8课《网络新世界》说课课件
- 食品流通监管工作实务
- 唐代中国行政区划
- 标准机柜结构设计规范
- 煤矿避难硐室安全避险模拟综合防护性试验报告
- 网络预约出租汽车驾驶员从业资格信阳区域科目考试题库
评论
0/150
提交评论