c语言作图:在屏幕特定位置作图,如何js 获取div坐标该位置的坐标?

第五章图形显示及计算机绘图;5.1C语言图形函数及其用法;TurboC2.0具有70多个图形库函数,其图形;5.2图形系统管理;在一般缺省情况下,屏幕为80列、25行的文本方式;5.2.1图形方式初始化;图形方式初始化是通过函数initgraph来完成;函数initgraph的功能是通过从磁盘上装入一;①gdriver:是一个整型值,用来指定要装入的;除DE
第五章 图形显示及计算机绘图
5.1 C语言图形函数及其用法
TurboC 2.0具有70多个图形库函数,其图形功能极为丰富,而且用TurboC 2.0编写和通过的程序,可以不作修改或只做很少的修改,便可以在TurboC ++或Borland C++的环境下编译运行,所以TurboC 是一种很好的图形设计语言。在这一节只介绍其中最常用的一部分,其余的图形函数及用法简介可参阅其它参考书。所有这些图形函数均在头文件“graphics.h”中定义,所以,凡是在程序中要调用这些图形函数,都必须在程序文件的开头写上文件包含命令: #include<graphics.h>
5.2图形系统管理
在一般缺省情况下,屏幕为80列、25行的文本方式。在文本方式下,所有的图形函数均不能操作,因此在使用图形函数绘图之前,必须将屏幕显示适配器设置为一种图形模式,这就是通常所说的“图形方式初始化”。在绘图工作完毕之后,又要使屏幕回到文本方式,以便进行程序文件等的编辑工作。TurboC 2.0提供了14个函数,来进行对图形系统的控制和管理工作。
5.2.1图形方式初始化
图形方式初始化是通过函数initgraph来完成的。其调用格式为:
initgraph(*gdriver,*gmode,*path);
函数initgraph的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将 系统设置为图形方式。调用该函数须用三个参数,其含义为:
①gdriver:是一个整型值,用来指定要装入的图形驱动程序,该值在头文件graphics.h 中定义,见表5.1。
除DETECT外,表中每一个量均对应于一种图形驱动程序。如果使用DETECT,则由系统自动检测图形适配器的最高分辨率模式,并装入相应的图形驱动程序。
②gmode:是一个整型值,用来设置图形显示模式。不同的图形驱动程序有不同的图形显示模式,即使是在同一个图形驱动程序下,也可能会有几种图形显示模式。图形显示模式决定了显示的分辨率、可同时显示的颜色的多少、调色板的设置方式以及存储图形的页数。几种不同的图形显示模式见表5.2。
③path:是一个字符串,用来指明图形驱动程序所在的路径。如果驱动程序就在用户当前目录下,则该参数可以为空字符串,否则应给出具体的路径名。一般情况下,TurboC安装在C盘的TC目录中,则该路径为:C:\TC,如果写在参数中则为:&C:\\tc”。
以上介绍了initgraph函数中的三个参数的含义。注意,前两个参数实际上是整型指针,
调用时应加上地址运算符“&”。下面举例说明:
假设我们在例子中使用VGA图形驱动程序,图形显示模式为VGAHI,即VGA高分辩率图形模式,分辨率为640×480。则initgraph函数的调用方式如下:
int gdriver,gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(&gdriver,&gmode,“C:\\tc”);
也可以用整型常数代替符号常数,如:
int gdriver=9,gmode=2;
initgraph(&gdriver,&gmode,&C:\\tc&); 这两种方式是等效的。
另外,还可以使用DETECT模式,由系统自动对硬件进行检测,并把图形显示模式设 置为检测到的驱动程序的最高分辨率。如:
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,“C:\\tc”);
5.2.2关闭图形方式
在运行图形程序绘图结束后,又要回到文本方式,以进行其他工作,这时应关闭图形方式。关闭图形方式要用函数closegraph。其调用格式为:
closegraph();
函数closegraph的作用是:释放所有图形系统分配的存储区,恢复到调用initgraph之前的状态。函数closegraph不需参数。
5.3屏幕管理
TurboC 2.0提供了11个函数,用于对屏幕和视图区等进行控制管理。
5.3.1设置视图区
在图形模式下,可以用函数setviewport在屏幕上定义一个视图区。视图区相当于一个 用于绘图的窗口。视图区的位置用屏幕绝对坐标定义,并且可以把视图区设置为裁剪和不裁剪两种状态。
函数setviewport的调用格式为:
setviewport(x1,y1,x2,y2,c);
函数调用中的五个参数均为整型,其中:
x1,y1:为视图区的左上角坐标。
x2,y2:为视图区的右下角坐标。
c:为裁剪状态参数。当c=1时,则超出视图区的图形部分被自动裁剪掉;当c=0时,则对超出视图区的图形不作裁剪处理。
应注意:视图区建立以后,所有的图形输出坐标都是相对于当前视图区的,即视图区左上角点为坐标(0,0)点,而与图形在屏幕上的位置无关。
5.3.2清除视图区
清除视图区用函数clearviewport。它的作用是清除掉当前的视图区,将当前点(cp:current point)位置设置于屏幕左上角(0,0)点。所以执行后,原先设置的视图区将不复存在。函数的
调用格式为:
clearviewport();
5.3.3清屏
清除屏幕使用函数cleardevice。它的作用是立即清除全屏幕。并将当前点位置设置为原点(0,0)。但是其他的图形系统设置将保持不变,如线型、充填模式、文本格式和模式等;如果设置了视图区,则视图区的设置不变,包括当前点位置设置在视图区的左上角。
清屏函数的调用格式为:
cleardevice();
5.4绘图函数
绘图函数是编写绘图程序的基础,也是任何一种图形软件的核心内容。从理论上来说, 用象素点几乎可以画出任何图形,但毕竟是效率太低。为此,Turbo C的BGI(Borland Graphics Interface)提供了大量的基本绘图函数,以方便图形设计。
在用绘图函数作图时,要随时注意画图的“当前点位置”,它是绘图的起始位置。也就是说,图形总是从当前点开始画。画完一个图形后,有时当前点的位置不变,仍在原来的位置;而有时则要把当前点移到新的位置。此外,为了从指定位置开始作图,有时需要先移动当前点位置,然后再作图。这些,在调用绘图函数的时候要注意。
5.4.1直线类函数
用直线类函数绘制直线图形,可以用两种坐标:一种是绝对坐标;另一种是相对坐标。
①line函数
用line函数可以在指定的两点之间画一条直线段。其调用格式为:
1ine(x1,y1,x2,y2);
参数x1,y1,x2,y2均为整型,使用绝对坐标。其中(x1,y1)和(x2,y2)分别为直线的两个端点坐标。
用line函数画线时,其当前点的位置不变。
例如,下面的调用可在屏幕上(VGA)画出一条对角线,
line(0,0,639,479);
如果已知三角形的三个顶点坐标分别为:(x1,y1)、(x2,y2)和(x3,y3),则用下面的语句可以把该三点连成一个三角形:
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
② lineto函数
lineto函数用于从当前点位置到指定位置之间画一条直线,并改变当前点的位置。所以 执行的结果是,在画线到指定点的同时也把当前点的位置移到了指定点(即直线的终点)。其调用格式为:
lineto(x,y);
参数x,y为指定点坐标,均为整型。
③ moveto函数
函数moveto用于移动当前点位置,并不画线。其调用格式为:
moveto(x,y);
参数x,y用于指定新的当前点位置坐标,用整型,使用绝对坐标。调用的结果是将当前点位置移到点(x,y)处。例如:
moveto(40,100);
结果是将当前点位置移到了(40,100)处。
moveto函数和lineto函数配合使用,可以在两点之间画直线。例如:
moveto(40,100);
lineto(200,300);
上面的语句是先把当前点移到(40,100)处,然后从该点画线到(200,300)处。画线结束后,当前点位置在(200,300)处。
用moveto函数和lineto函数结合,改写画上面提到的三角形的语句是这样的:
moveto(x1,y1);
lineto(x2,y2);
lineto(x3,y3);
lineto(xl,y1);
画图结束,当前点又回到点(x1,y1)处。
④linerel函数
linerel函数用相对坐标画线。其功能是从当前点位置开始画线到指定点位置,该指定点位置的坐标不是以绝对坐标的形式给出,而是以其相对于当前点(即直线起点)位置的坐标增量给出的。其调用格式为:
linerel(dx,dy);
参数dx,dy用整型,是相对于直线起点的坐标增量。linerel函数改变当前点位置到指定点处。
假设当前点位置坐标是(x,y),则
linerel(dx,dy);
lineto(x十dx,y十dy);
⑤moverel函数
moverel函数的功能与moveto函数相似,但它使用的是相对坐标,它使当前点位置在x和y方向上分别移动一个增量。其调用格式为:
moverel(dx,dy);
参数dx,dy为整型,是相对于当前点位置的增量。
下面举几个实际的绘图例子,来说明上面这些函数在使用上的差别:
设要过四点(160,120),(480,120),(480,360)和(160,360)画一个矩形,用不同的函数其绘图程序可以是:
[例程序5.1](用1ine函数画)
#include<graphics.h>
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,“c:\\tc”);
包含各类专业文献、幼儿教育、小学教育、文学作品欣赏、行业资料、专业论文、高等教育、中学教育、C语言绘图知识21等内容。 
 C语言学习笔记(必看知识点)_计算机软件及应用_IT/计算机_专业资料。C语言学习笔记,必会的知识点C 学习笔记 --必看知识点 100 例(上) --edited by lvlv from...  C语言基础知识归纳_物理_自然科学_专业资料。C语言 C 语言基础知识 1. 每个 C 程序有且只有一个主函数 main(), 且程序必须从 main() 函数开始执行,并在 ...  C语言知识点总结【完美版】_电脑基础知识_IT/计算机_专业资料。C 语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 环结构。 2)读程序都要从 main(...  C语言程序设计基础知识要点_计算机软件及应用_IT/计算机_专业资料。01.C 程序基本结构一、C 语言的特点: 1、C 语言源程序的基本组成单位是函数;一个 C 程序可...  C语言基础知识总结_教学案例/设计_教学研究_教育专区。C语言基础知识点总结,C语言基础知识大全,C语言基础知识汇总,C语言基本语法归纳,主要内容1.C数据类型 2.简单...  C语言全部知识点总结_IT认证_资格考试/认证_教育专区。C 语言 知识点复习资料 总体上必须清楚的: 1.程序中基本的控制结构是三种: 结构(分支结构)、循环结构。 ...  C语言基础知识大全_IT/计算机_专业资料。电脑编程常量和变量 1.常量: 程序执行过程中,值不变的量。 3 ,'a' 变量:值可以改变的量。 一个变量有一个名字,在...  C语言全部知识点复习资料_其它_高等教育_教育专区。这本资料,由我的老师姚建绩老师,总结 C 语言 知识点复习资料 总体上必须清楚的: 1.程序中基本的控制结构是...  C语言基础知识测试题 全面完整_其它考试_资格考试/认证_教育专区。基础知识测试题 一.单项选择题 1.以下不正确的C语言标识符是(D ) A. ABC B. abc B. a+...

我要回帖

更多关于 js 获取div坐标 的文章

 

随机推荐