第3章高级编程技术的实现内容摘要:
t main() { int i,j。 union REGS inreg,outreg。 =0。 /*置屏幕显示方式 */ =0x13。 /* 定义 VGA256色 320 200图形模式 */ int86(0x10,amp。 inreg,amp。 outreg)。 /*调用中断 0x10*/ for (i=0。 i256。 i++) for(j=0。 j200。 j++) { =0x0c。 /*写点 */ 应用实例 在屏幕上画出颜色不同的 256条直线的 程序源代码 =i。 /*置颜色号 */ =0。 /*决定画点位置 */ =i。 =0。 =j。 int86(0x10,amp。 inreg,amp。 outreg)。 } getch()。 =0。 =2。 /*返回到文本方式 */ int86(0x10,amp。 inreg,amp。 outreg)。 } 图形绘制: 点和线 —— 利用 BIOS调用 54 第 3章 高级编程技术的实现 图形绘制 : 矩形、圆和弧线 画矩形的函数: void far rectangle(int xl, int y1, int x2, int y2); 画椭圆 、 圆和扇形图函数: void ellipse(int x, int y, int stangle, int endangel, int xradius, int yradius); void far circle(int x, int y, int radius); void far arc(int x, int y, int stangle, int endangle, int radius); 55 第 3章 高级编程技术的实现 编写程序,使用鼠标进行如下操作:按住鼠标器的任意键并移动,十字光标将随鼠标而移动,根据按键的不同采用不同的形状来画出相应的移动轨迹:当仅按下左键时用圆圈;仅按下右键时用矩形;其它按键情况用线条。 应用实例 问题描述 图形绘制 56 第 3章 高级编程技术的实现 结合鼠标使用方法和上述的图形绘制函数来解决问题。 由于在 Windows2020/XP下不支持 INT 33的 1号显示鼠标光标功能,可以用画线函数 line()画出一个十字形光标。 光标的移动是通过将原位置光标用背景色再画而使其消失,然后在新位置处重新画一个光标,从而实现光标移动的动感。 应用实例 设计思想 图形绘制 57 第 3章 高级编程技术的实现 应用实例 程序运行截图 图形绘制 58 第 3章 高级编程技术的实现 图形绘制: 封闭图形的填色 填充设置函数 : void far setfillstyle(int pattern, int color); 该函数将用设定的 color颜色和 pattern图模式对后面画出的轮廓图进行填充,这些图轮廓是由待定函数画出的。 59 第 3章 高级编程技术的实现 图形绘制: 封闭图形的填色 填充设置函数 : void far setfillstyle(int pattern, int color) 60 第 3章 高级编程技术的实现 图形绘制: 封闭图形的填色 用户自定义填充函数 : void far setfillpattern(char upattefn, int color); 该函数设置用户自定义可填充模式,以 color指出的颜色对封闭图形进行填充。 参数 upattern是一个指向 8个字节存储区的指针,这 8个字节表示了一个8 8像素点阵组成的填充图模,它是由用户自定义的,用来对封闭图形填充。 8个字节的图模是这样形成的:每个字节代表一行,而每个字节的每一个二进制位代表该行的对应列上的像素。 是 1,则用color显示,是 0则不显示。 61 第 3章 高级编程技术的实现 图形绘制: 封闭图形的填色 得到目前的填充模式和颜色的函数 : void far fillsettings(struct fillsettingstype far *fillinfo)。 void far getfillpattern(char *upattern); 62 第 3章 高级编程技术的实现 图形绘制: 封闭图形的填色 可填充的基本图形函数: (这些函数绘制的图形 , 将根据事先用 setfillstyle函数设置的填充模式和颜色 , 或按缺省方式进行填充 ) void bar(int x1, int y1, int x2, int y2); void far pieslice(int x, int y, int stangle, int endangle, int radius); void far bar3d(int x1, int y1, int x2, int y2, int depth, int topflag); void far sector(int x, int y, int stangle, int endang1e, int xradius, int yradius); void far fillellipse(int x, int y, int xradius, int yradius); void far fillpoly(int numpoints, int far polypoints); 63 第 3章 高级编程技术的实现 图形绘制: 封闭图形的填色 可对任意封闭图形填充的函数 : void far floodfill(int x, int y, int border); 该函数将对任一封闭图形进行填充 , 其颜色和模式将由设定的或缺省的图模与颜色决定。 其中参数 (x, y)为封闭图形中的任一点 , border是封闭图形的边框颜色。 编程时该函数位于画封闭图形 ( 即要填充的图形 ) 的代码之后。 64 第 3章 高级编程技术的实现 include main(){ int i, graphdriver,graphmode,size,page。 char s[30]。 graphdriver=DETECT。 initgraph(amp。 graphdriver,amp。 graphmode,)。 cleardevice()。 setbkcolor(BLUE)。 setviewport(40,40,600,440,1)。 /*开图视口 */ setfillstyle(1,2)。 setcolor(YELLOW)。 rectangle(0,0,560,400)。 floodfill(50,50,14)。 /*用绿色填充矩形框 */ rectangle(20,20,540,380)。 setfillstyle(1,13)。 floodfill(2l,300,14)。 /*用淡洋红色填充矩形框 */ setcolor(BLACK)。 应用实例 程序源代码 settextstyle(1,0,6)。 /*设置字形方向 ,尺寸 */ outtextxy(100,60,Wel You)。 setviewport(100,200,540,380,0)。 setcolor(14)。 setfillstyle(1,12)。 rectangle(20,20,420,120)。 settextstyle(2,0,9)。 floodfill(21,100,14)。 /*用深蓝色填充 */ sprintf(s,“Let„s study Turbo C”)。 setcolor(YELLOW)。 outtextxy(60,40, s)。 /*用黄色显示 */ setcolor(1)。 settextstyle(4,0,3)。 outtextxy(110,80,s)。 getch()。 closegraph()。 } 图形绘制 65 第 3章 高级编程技术的实现 应用实例 程序输出 图形绘制 66 第 3章 高级编程技术的实现 主要内容 操作手段 显示方式 图形绘制技术 图像技术 动画技术 发声技术 汉字显示技术 精确的时间控制技术 67 第 3章 高级编程技术的实现 图像技术 :图像的二种来源 ( 1)屏幕图像 : 在图形方式下所绘图形形成的像素点图像。 图像数据直接存储在 VRAM中, VRAM中某地址单元存放的数就表示了相应屏幕上某行和列上的像素及其颜色值。 ( 2)图像文件 : 图像数据以一定的格式存储在文件中。 需要有专门的软件来支持,或自己编写程序来读取、显示和生成某种格式的图像文件。 首先必须要了解某种图像文件的格式。 68 第 3章 高级编程技术的实现 图像技术:屏幕图像与 VRAM 直接写屏 : 在图形方式下将图像数据直接写入 VRAM的过程,即图像显示过程。 直接写屏是最快的图像显示方法。 69 第 3章 高级编程技术的实现 图像技术: VRAM与系统存储器的对应关系 CGA的 VRAM对应的内存地址开始于 B8000H, VGA、EGA的开始于 A0000H。 对 CGA, VRAM仅有 16K字节;对 VGA和 EGA, VRAM可达 256K字节,它分成独立的 4个 64K字节部分,这样的每个部分称为一个位面或页面(编号 03),它们共同占有一块内存空间,即用同一的 64K个地址。 相应内存的每个地址实际上代表 VRAM4个位面上相并列的 4个字节。 对于 SVGA, 由于它要存取更高分辨率或更多颜色的数据,一般都至少拥有 512K以上的 VRAM, 但其所占用的内存地址仍大都是 64K, 因此也需要划分许多页面,对应到A0000H或其它的视频内存地址上。 70 第 3章 高级编程技术的实现 图像技术:屏幕图像的允许读写过程 允许读的过程是:首先通过索引寄存器 ( 接口地址为 0x3ce) 选择读位面选择寄存器 ( 其索引号为 4) ,然后通过读位面选择寄存器 ( 接口地址 0x3cf) 选择位面号。 相应的代码为: outportb(0x3ce, 4)。 /*将索引号 4送索引寄存器, 选择读位面选择寄存器 * /outportb(0x3cf, n)。 /*将选择的位面号 n送读位面选择寄存器 , 允许该位面可读 */ 71 第 3章 高级编程技术的实现 图像技术:屏幕图像的读写过程 允许写的过程是:首先通过索引寄存器 ( 接口地址为 0x3c4) 选择位面写允许寄存器 ( 索引号为 2) , 然后通过接口地址 0x3c5选择位面号。 相应的代码为: outportb(0x3c4, 2)。 /*将索引号 2送索引寄存器, 选择位面写允许寄存器 */ outportb(0x3c5, k)。 /*送位面号至位面写允许寄存器 , 允许该位面可写 */ 72 第 3章 高级编程技术的实现 图像技术:屏幕图像数据在 VRAM中存放格式 CGA的 4色 320 200的模式 , 视频内存起始地址B0000H。 屏幕上显示的像素点从左到右 , 从上到下依次存在 VRAM从 0号地址开始的连续地址中 , 每个像素占 2位 , VRAM每个字节存放四个像素点。 特殊的地方 : 屏幕上显示的偶行像素存在 16KVRAM的上半部 , 而奇行存在下半部。 从系统地址看 , 上半部开始于 B800:0000, 下半部开始于 B800:1000。 73 第 3章 高级编程技术的实现 图像技术:屏幕图像数据在 VRAM中存放格式 VGA视频内存起始地址 A0000H, 在 16色 640 480模式下采用位面对应方式 , 视频内存地址上每一个字节代表 8个像素 , 每一位又可对应到位面中同样位置的 4位上 ( 4位的组合表示 16色之一 , 因此又称位面为颜色位面 )。 在屏幕上绘出一个点时 , 就必须将数据分别存放到四个位面中对应的位上。 74 第 3章 高级编程技术的实现 图像技术:屏幕图像数据在 VRAM中存放格式 在 256色 320 200模式下采用的是线性对应的方法( SVGA的所有 256色和真彩都是用这种方法 )。 线性对应将屏幕上每一点与视频内存地址按顺序一一对应起来 , 一个点对应一个字节 , 这样做的好处是:这种对应方。第3章高级编程技术的实现
相关推荐
子均为 15NDNA( 亲代 )。 将亲代大肠杆菌转移到含14N的培养基上 , 再连续繁殖两代 ( I和 II) , 用离心的方法分离得到的结果如下表所示 , 请分析: 对照 亲代 I II 轻链 14NDNA 全轻链 1/2轻链 中链 全中链 1/2中链 重链 15NDNA 全重链 ( 1) 由实验结果可以推出第一代 ( I) 细菌 DNA分子中一条链是 , 另一条链是。 ( 2)
17 • ( 09海南) 3.董仲舒融合先秦以来各家思想形成新儒学,其思想基础源于对一部儒家经典的新阐释,该经典是 • A. 《 春秋 》 B. 《 论语 》 C. 《 孟子 》 D. 《 易经 》 A 18 • ( 09海南) 4.汉武帝倡导“独尊儒术”,后来,汉宣帝反对专任儒生时说:“汉家自有制度,霸王道杂之,奈何纯任德教,用周政乎。 ”此处所谓“周政”主要是指周代的 • A.分封制度 •
功能:将汇编地址计数器设置成数值表达式的值。 其中 , 数值表达式的值应为非负的整数 , 其值在 0~ 65535之间 例 【 415】 汇编地址计数器和伪指令 ORG举例 DATA SEGMENT ORG 4 BUF DB 39。 readme39。 ORG $+5 NUM DB 2 DATA ENDS 汇编语言中的常量、变量及标号 一 、 常量 常量是指在程序执行期间不变的量。
的变量可以在量词作用范围内用另外变量代替。 我们可以对变量适当地改名 , 使每一个量词所约束的变量都有不同的名字 . 例如 , 谓词公式 ( x) P( x) ∨ (x) Q( x) 改写成 ( x) P( x) ∨ (y )Q( y) . 4. 删除公式中的存在量词 . 例如 ,谓词公式 ( x)(y)P( x, y) 在删去存在量词之后 , 变成 ( x)P( x, f(x))
XbXb XBY XbY 表现型 正常 正常(携带者 ) 正常 色盲 色盲 与人类色盲有关的基因型和表现型 6种婚配方式 = 女 3种基因型 x 男 2种基因型 • 男女 6种婚配方式 XBXB XBY x 1 2 3 5 4 6 XBXb XBY x XbXb XBY x XBXB XbY x XBXb XbY x XbXb XbY x XBXB XBY XBY XBXb XBXb XBXB
AaBb 双因子杂合体 dihybrid 测交表现型 AaBb: Aabb: aaBb: aabb= 1: 1: 1: 1 自交表现型 A B : A bb: aaB : aabb= 9: 3: 3: 1 双因子杂合体自交后代( F2) 基因型及表现型比例 AABB 1 → AABB AAbb 1 → AAbb aaBB 1 → aaBB aabb 1 → aabb