文档库 最新最全的文档下载
当前位置:文档库 › Cairo 图形指南(11) —— 图像

Cairo 图形指南(11) —— 图像

Cairo 图形指南(11) —— 图像
Cairo 图形指南(11) —— 图像

Cairo 图形指南 (11) —— 图像

在这一篇里,要讲述图像的处理。先是演示如何在 GTK+ 窗口中显示一幅图像,然后再制造一些特效。

图像的显示

在第一个例子里,显示了一幅图像。 ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include

#include

cairo_surface_t *image;

static gboolean

on_expose_event(GtkWidget *widget,

GdkEventExpose *event,

gpointer data)

{

cairo_t *cr;

cr = gdk_cairo_create (widget->window);

cairo_set_source_surface(cr, image, 10, 10);

cairo_paint(cr);

cairo_destroy(cr);

return FALSE;

}

int main(int argc, char *argv[])

{

GtkWidget *window;

image = cairo_image_surface_create_from_png("plaveckycastle.png");

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 g_signal_connect(window, "expose-event",

G_CALLBACK (on_expose_event), NULL);

g_signal_connect(window, "destroy",

G_CALLBACK (gtk_main_quit), NULL);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 320, 250); gtk_widget_set_app_paintable(window, TRUE);

gtk_widget_show_all(window);

gtk_main();

cairo_surface_destroy(image);

return 0;

}

这个示例显示了一幅图片,其尺寸为 300x225,可从这里下载。这是斯洛伐克西部一个什么地方(Plavecke Podhradie )的中世纪城堡的废墟的一幅照片。 ?

1 i mage = cairo_image_surface_create_from_png("plaveckycastle.png"); 用一幅 png 图片来创建一份图像外观。出于效率的考虑,应在主函数中调用这个函数。 ?

1 c airo_set_source_surface(cr, image, 10, 10);

基于前面构造的图像外观来创建源与外观,用于图像的绘制。 ?

1 c airo_paint(cr);

绘制图片。

垂帘效果(Blind Down )

在下面的代码示例中,要垂帘显示图片,就像拉下窗帘的那种效果。 ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include

#include

gboolean timer = TRUE;

cairo_surface_t *image;

static gboolean

on_expose_event(GtkWidget *widget,

GdkEventExpose *event,

gpointer data)

{

cairo_t *cr;

cairo_t *ic;

cairo_surface_t *surface;

static gdouble angle = 0;

static gint image_width = 0;

static gint image_height = 0;

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

static gint w = 0;

static gint h = 0;

cr = gdk_cairo_create(widget->window);

gint width, height;

gtk_window_get_size(GTK_WINDOW(widget), &width, &height);

image_width = cairo_image_surface_get_width(image);

image_height = cairo_image_surface_get_height(image);

w = image_width;

surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, image_width, image_height);

ic = cairo_create(surface);

cairo_rectangle(ic, 0, 0, w, h);

cairo_fill(ic);

h += 1;

if ( h == image_height) timer = FALSE;

cairo_set_source_surface(cr, image, 10, 10);

cairo_mask_surface(cr, surface, 10, 10);

cairo_surface_destroy(surface);

cairo_destroy(cr);

cairo_destroy(ic);

return FALSE;

}

static gboolean

time_handler(GtkWidget *widget)

{

if (widget->window == NULL) return FALSE;

if (!timer) return FALSE;

gtk_widget_queue_draw(widget);

return TRUE;

}

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 int main(int argc, char *argv[])

{

GtkWidget *window;

image = cairo_image_surface_create_from_png("plaveckycastle.png");

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

g_signal_connect(G_OBJECT(window), "expose-event",

G_CALLBACK(on_expose_event), NULL);

g_signal_connect(G_OBJECT(window), "destroy",

G_CALLBACK(gtk_main_quit), NULL);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 325, 250); gtk_window_set_title(GTK_WINDOW(window), "blind down");

gtk_widget_set_app_paintable(window, TRUE);

g_timeout_add(15, (GSourceFunc) time_handler, (gpointer) window);

gtk_widget_show_all(window);

gtk_main();

cairo_surface_destroy(image);

return 0;

}

这个垂帘效果幕后的思想相当简单。图片的高度是 h 个像素,则可对其逐行进行绘制,直至图片完全显示。 ?

1 2 cairo_t *cr;

cairo_t *ic;

声明两个 cairo 环境,一个与 GtkWindow 相关联,另一个与图片相关联。 ?

1 2 surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, image_width, image_height); ic = cairo_create(surface);

创建一个图像外观,并通过它构造那个与图像相关联的 cairo 环境。 ?

1 2 cairo_rectangle(ic, 0, 0, w, h);

cairo_fill(ic);

在初始的空图像中绘制一个矩形,它在循环显示中会增加 1 个像素的高度。采用这种方式创建的图像在后面要作为蒙板来用。 ?

1 2 h += 1;

if ( h == image_height) timer = FALSE;

整幅图像绘制完毕后,停止计时器。 ?

1 2 cairo_set_source_surface(cr, image, 10, 10);

cairo_mask_surface(cr, surface, 10, 10);

城堡图像被设置为要被绘制的源,并采用 surface 的 alpha 通道作为蒙板来绘制这个源。

光谱效果

将这种效果称为光谱效果,因为作者不知道怎么称呼才好(我感觉叫百叶窗效果更好)。可能你还记得从前的 ZX 光谱计算机,在这种计算机上载入图像时,它就逐渐的被显示出来,下面的示例大致是模仿这种方式。

?

1 2 3 4 5 6 7 8 9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43 #include

#include

gboolean timer = TRUE;

cairo_surface_t *image;

static gboolean

on_expose_event(GtkWidget *widget,

GdkEventExpose *event,

gpointer data)

{

cairo_t *cr;

cairo_t *ic;

cairo_surface_t *surface;

static gdouble angle = 0;

static gint w = 0;

static gint h = 0;

static gint image_width = 0;

static gint image_height = 0;

static gint count = 0;

cr = gdk_cairo_create(widget->window);

gint width, height;

gtk_window_get_size(GTK_WINDOW(widget), &width, &height);

surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, image_width, image_height);

image_width = cairo_image_surface_get_width(image);

image_height = cairo_image_surface_get_height(image);

w = image_width;

ic = cairo_create(surface);

gint i, j;

for (i = 0; i <= image_height; i+=7) {

for (j=0 ; j < count; j++) {

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87 cairo_move_to(ic, 0, i+j);

cairo_line_to(ic, w, i+j);

}

}

count++;

if ( count == 8) timer = FALSE;

cairo_stroke(ic);

cairo_set_source_surface(cr, image, 10, 10);

cairo_mask_surface(cr, surface, 10, 10);

cairo_surface_destroy(surface);

cairo_destroy(cr);

cairo_destroy(ic);

return FALSE;

}

static gboolean

time_handler (GtkWidget *widget)

{

if (widget->window == NULL) return FALSE;

if (!timer) return FALSE;

gtk_widget_queue_draw(widget);

return TRUE;

}

int main(int argc, char *argv[])

{

GtkWidget *window;

image =

cairo_image_surface_create_from_png("plaveckycastle.png"); gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

g_signal_connect(G_OBJECT(window), "expose-event",

G_CALLBACK(on_expose_event), NULL);

88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 g_signal_connect(G_OBJECT(window), "destroy",

G_CALLBACK(gtk_main_quit), NULL);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 325, 250);

gtk_widget_set_app_paintable(window, TRUE);

g_timeout_add(400, (GSourceFunc) time_handler, (gpointer) window);

gtk_widget_show_all(window);

gtk_main();

cairo_surface_destroy(image);

return 0;

}

这个示例的许多细节与上一个示例相似。这次,是将图像分为每 8 行为一个区域。在每次循环中,8 个部分中每个区域增加一个像素高度。通过这种方式创建的图像将再一次作为模板来显示城堡图像。 ?

1 2 3 4 5 6 7 gint i, j;

for (i = 0; i <= image_height; i+=7) {

for (j=0 ; j < count; j++) {

cairo_move_to(ic, 0, i+j);

cairo_line_to(ic, w, i+j);

}

}

这是该示例的主要逻辑,我们逐渐的将线绘制到各区域。

《计算机图形学》新版实验指导书

湖北汽车工业学院实验报告 班级学号姓名 课程名称完成日期 实验一熟悉Visual C++绘图应用程序的开发过程 一、实验目的 1、熟悉VC6.0开发环境; 2、掌握MFC编程; 3、掌握CDC图形程序库; 4、掌握VC6.0下的简单图形程序的开发过程。 二、实验性质 验证性 三、实验要求 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容; 2、能够根据实验指导书的要求,完成相关的内容; 3、务必掌握绘图程序的开发流程,为今后复杂的图形程序开发做好准备。 四、实验内容 (一)生成绘图应用程序的框架 开发绘图应用程序的第一步是使用AppWizard(程序生成向导)来建立程序的基本框架。AppWizard为框架的建立提供了一系列对话框及多种选项,用户可以根据不同的选项生成自己所需要的应用程序框架。具体步骤如下: 1、从“文件”菜单选择“新建”菜单项,在“新建”对话框中选择“工程”选项卡,从项目类型中选择MFC AppWizard(.exe)。在“位置”文本框中,可直接输入目录名称,或者单击“…”按钮选择已有的目录。在“工程名称”文本框中输入项目的名称,如Draw,其他采用默认值,这时确定按钮变亮,如下图所示:

2、单击确定按钮,弹出“MFC应用程序向导步骤1”对话框,如图所示,选择单文档单选按钮和“中文[中国]”选项,表示要生成以中文为用户界面的单文档(SDI绘图程序)。 3、点击下一步,在随后出现的几个对话框中,都点击下一步,表示采用各项的默认设置,直到出现“MFC应用程序向导步骤6”对话框,如图所示。

4、“MFC应用程序向导步骤6”对话框中默认设置确定了类得名称及其所在文件的名称。用户可以改CdrawApp、CmainFrame和CdrawDoc的文件名称,但不可以改变它们的基类。 单击完成按钮,应用程序向导显示将要创建的文件清单,再单击确定,MFC应用程序向导就自动生成绘图程序的各项源文件了。 MFC应用程序向导设置完后,点击组建按钮,然后再点击执行按钮,就会出现MFC 应用程序向导生成的完整应用程序的基本框架。

图形图像基础知识

第1章图形图像基础知识 1.1 Photoshop功能简介 Photoshop是一款强大的平面设计软件,在网页设计、建筑效果图设计、平面广告设计、特效文字设计、界面设计和影像创意设计等设计领域都有广泛的应用。 1.平面设计的概念 平面设计是设计者借助一定的工具材料,将所要表达的形象及创意在二维空间中塑造出的视觉艺术。其广泛应用于广告、招贴、包装、海报、插图及网页制作等,因此,平面设计就是视觉传达设计。 2.平面设计的应用 (1)广告设计 在现实生活中,广告已和人类社会的经济以及人们的文化生活紧密交织在一起。在平面广告设计中一般包含有文字和图形。常见的表现手法有名人与名牌、夸张与准确、幽默与悬念、劝导与引诱恐吓等。 广告作品一般由主题、创意、文字、形象和衬托等组成。广告创作就是将这些要素有机地结合起来,成为一则完整的广告作品,如图1-1所示。 图1-1 广告设计 (2)商标设计 标志是表明事物特征的记号。商标、店标、厂标等专用标志对于发展经济、创造经济效益、维护企业和消费者权益等具有巨大的实用价值和法律保障作用。各种国内外重大活动、会议、运动会以及邮政运输、金融财贸、机关、团体乃至个人(图章、签名)等几乎都有表明自己特征的标志,如图1-2所示。

(3)包装设计 包装是商品生产的延续,是商品的有机组成部分,商品经过包装和生产过程才算完成。随着商品经济的发展,商品的包装设计越来越受到重视,如图1-3所示。 图1-2 商标设计图1-3 鲜奶包装设计 (4)网页设计 在因特网上,有很多设计独特、美观、新颖的网站,这些网站的网页使用了许多平面设计的技巧,如图1-4所示。 图1-4 网页设计 1.2图像的基本概念 1.2.1像素和分辨率 要学习计算机平面设计,必须掌握图像的像素数据是如何被测量与显示的基本知识,

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

图像处理基础知识点

图像处理基础知识点 1、Ps的作用:调色、修复图片、艺术创作等等 2、Ps的启动:开始>>所有程序>>ps 3、Ps的退出:关闭按钮、文件>>退出、ctrl+q 4、图像间的显示关系:窗口>>排列(层叠、水平平铺、垂直平铺、排列图标) 5、Ps:标题栏、菜单栏、属性栏、工具条(左侧可移、过去单列工具条,现在ps3单双列)、图像编辑窗口、面板组合窗口(右侧可移)、状态栏 6、1)位图图像:图像由一个一个带有颜色值的小点组成的。称这些小点为像素。图像由像素组成横向*纵向 2)矢量图像:不是由像素点组成的,例如:flash等等 7、新建文件: 1)快捷键——ctrl+n>>名称(保存的默认名称)、预设(可以将设置保存为日后使用:存储预设)、宽度(单位:像素(图像最小单位)、高度、分辨率(单位面积上像素的多少,像素越多图像越精细)、颜色模式、背景内容(背景颜色:白色、背景色、透明))>>确定2)文件>>新建 3)Ctrl并在空白处双击 8、打开文件: (资源管理器:我的电脑右键资源管理器寻找素材)1)将图像往PS中拖(可以拖动多张)2)文件>>打开 3)在空白位置双击4)ctrl+o 9、存储:文件>>存储ctrl+s 文件>>另存储为ctrl+shit+s 10、关闭图像文件:文件>>关闭Ctrl+w或ctrl+F4 窗口右上角的关闭按钮 窗口>>文档>>关闭全部:可关闭全部打开的图像 11、工具箱按Tab可以打开和关闭(右下角有黑三角证明为一个工具组):第一组:选择、移动、裁切等第二组:修复、绘画、模糊、加深、减淡等第三组:路径的设置、文字的操作等第四组:附注工具等 12、Alt+delete:用前景色填充Ctrl+delete:用背景色填充 13、Ctrl+d:取消选区选择>>取消选区右键>>取消选区

遥感数字图像处理教程实习报告

遥感数字图像处理教程实习报告

《数字图像处理》 课程实习报告 ( 2011 - 2012学年第 1 学期) 专业班级:地信09-1班 姓名:梁二鹏 学号:310905030114 指导老师:刘春国 ---------------------------------------------- 实习成绩: 教师评语: 教 师

签 名 : 年月日 实习一:图像彩色合成实习 一、实验目的 在学习遥感数字图像彩色合成基础上,应用所学知识,基于遥感图像处 理软件ENVI进行遥感数字图像彩色合成。 二、实验内容 彩色合成:利用TM图像can_tmr.img,实现灰度图像的密度分割、多波 段图像的真彩色合成、假彩色合成和标准假彩色合成。 三、实验步骤 1、显示灰度图像主要步骤: 1、打开ENVI4.7,单击FILE菜单,在下拉菜单中选择open image file 选 项,然后在弹出的对话框中选择can_tmr.img文件,单击打开。 2、在可用波段列表对话框中,选中某一波段图像,选中gray scale单选按 钮,单击LOAD BAND按钮,显示一幅灰度图像。 3、在可用波段列表对话框中,选择其他某一波段图像,进行显示。

4、利用可用波段列表中的display按钮,同时有多个窗口显示多个波段图像。 5、链接显示。利用图像窗口tool菜单下的link子菜单link display实现多图 像的链接显示。如图所示:红色方框。 6、使用tool菜单下的Cursor Location/value和pixel Locator功能在确定像 素的值和位置。

计算机图形学实验指导书1

佛山科学技术学院计算机图形学实验指导书 李晓东编 电信学院计算机系 2011年11月

实验1 直线段的扫描转换 实验类型:设计性 实验类别:专业实验 实验目的 1.通过实验,进一步理解直线段扫描转换的DDA算法、中点bresenham算法及 bresenham算法的基本原理; 2.掌握以上算法生成直线段的基本过程; 3.通过编程,会在C/C++环境下完成用DDA算法、中点bresenham算法及 bresenham算法对任意直线段的扫描转换。 实验设备及实验环境 计算机(每人一台) VC++6.0或其他C/C++语言程序设计环境 实验学时:2学时 实验内容 用DDA算法中点bresenham算法及bresenham算法实现任意给定两点的直线段的绘制(直线宽度和线型可自定)。 实验步骤: 1、复习有关算法的基本原理,明确实验目的和要求; 2、依据算法思想,绘制程序流程图; 3、设计程序界面,要求操作方便; 4、用C/C++语言编写源程序并调试、执行; 5、分析实验结果 6、对程序设计过程中出现的问题进行分析与总结; 7、打印源程序或把源程序以文件的形式提交; 8、按格式要求完成实验报告。 实验报告要求: 1、各种算法的基本原理; 2、各算法的流程图 3、实验结果及分析(比较三种算法的特点,界面插图并注明实验条件) 4、实验总结(含问题分析及解决方法)

实验2 圆的扫描转换 实验类型:设计性 实验类别:专业实验 实验目的 1、通过实验,进一步理解和掌握中点bresenham画圆算法的基本原理; 2、掌握以上算法生成圆和圆弧的基本过程; 3、掌握在C/C++环境下完成用中点bresenham算法圆或圆弧的绘制方法。实验设备及实验环境 计算机(每人一台) VC++6.0或其他C/C++语言程序设计环境 实验学时:2学时 实验内容 用中点(Besenham)算法实现圆或圆弧的绘制。 实验步骤 1.复习有关圆的生成算法,明确实验目的和要求; 2.依据算法思想,绘制程序流程图(注意圆弧生成时的输入条件); 3.设计程序界面,要求操作方便; 4.用C/C++语言编写源程序并调试、执行; 5.分析实验结果 6.对程序设计过程中出现的问题进行分析与总结; 7.打印源程序或把源程序以文件的形式提交; 8.按格式要求完成实验报告。 实验报告要求: 1.分析算法的工作原理; 2.画出算法的流程图 3.实验结果及分析(比较圆与圆弧生成算法的不同) 4.实验总结(含问题分析及解决方法)

(完整版)图形图像处理案例教程photoshopcs5教案.doc

PS 教学简案建议学时: 64 学时

课题任务参考资料教学方法 教学目标 任务学习重点教学实施 项目一认识Photoshop CS5 本项目参考节数: 6 课时 认识Photoshop CS5 教学配套课件 教师讲解、示范演示、操作辅导, 授课节数 6 课时 学生操作 1.认识 Photoshop CS5 的工作界面 2.学会整理操作窗口 3.掌握 Photoshop 文件的基本操作,学会新建、打开、关闭、保存文件 4.初步掌握图层的基本操作 5.运用历史记录面板还原操作 1.认识Photoshop CS5 的工作界面 2.文件的管理 3.制作一张简单的广告 1.认识Photoshop CS5 的工作界面 2.掌握Photoshop 文件的基本操作,学会新建、打开、关闭、保存文件 3.初步掌握图层的基本操作 任务 1认识Photoshop CS5的工作界面 任务简述:认识Photoshop CS5 的工作界面以及各种菜单、工具 相关知识:(教师讲解、演示,学生操作) 1.认识工作区,进行屏幕切换操作 2.认识工具箱,选择工具进行操作 3.认识工具与属性栏、面板,对不同工具的属性栏进行操作 任务实施:

教学检测教学总结任务 2文件的管理 任务简述:文件管理,包括新建文件、打开文件,把文件以不同的格式存储到指定的位置等,及图层基本操作。 相关知识:(教师讲解、演示,学生操作) 1.文件的管理 2.图层 3.文件格式 任务实施:(教师演示,学生操作训练、教师指导) 按操作步骤操作 任务 3制作一张简单的广告 任务简述:制作一张简单的广告。 相关知识:(教师讲解、演示,学生操作) 1.新建图层 2.图层的复制 3.调整图层顺序 任务实施:(教师演示,学生操作训练、教师指导) 按操作步骤操作 1.任务过程中检查操作效果、检查任务作品 2.完成自我检测 3.布置作业 完成自我检测

遥感数字图像处理教程复习分析

第一章. 遥感概念 遥感(Remote Sensing,简称RS),就是“遥远的感知”,遥感技术是利用一定的技术设备和系统,远距离获取目标物的电磁波信息,并根据电磁波的特征进行分析和应用的技术。 遥感技术的原理 地物在不断地吸收、发射(辐射)和反射电磁波,并且不同物体的电磁波特性不同。 遥感就是根据这个原理,利用一定的技术设备和装置,来探测地表物体对电磁波的反射和地物发射的电磁波,从而提取这些物体的信息,完成远距离识别物体。 图像 人对视觉感知的物质再现。图像可以由光学设备获取,如照相机、镜子、望远镜、显微镜等;也可以人为创作,如手工绘画。图像可以记录、保存在纸质媒介、胶片等等对光信号敏感的介质上。随着数字采集技术和信号处理理论的发展,越来越多的图像以数字形式存储。因而,有些情况下“图像”一词实际上是指数字图像。 物理图像:图像是人对视觉感知的物质再现 数字图像:图像以数字形式存储。 图像处理 运用光学、电子光学、数字处理方法,对图像进行复原、校正、增强、统计分析、分类和识别等的加工技术过程。 光学图像处理 应用光学器件或暗室技术对光学图像或模拟图像(胶片或图片)进行加工的方法技术 数字图像处理 是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。图像处理能做什么?(简答) 是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理主要目的:提高图像的视感质量,提取图像中所包含的某些特征或特殊信息,进行图像的重建,更好地进行图像分析,图像数据的变换、编码和压缩,更好图像的存储和传输。数字图像处理在很多领域都有应用。 遥感图像处理(processing of remote sensing image data )是对遥感图像进行辐射校正和几何纠正、图像整饰、投影变换、镶嵌、特征提取、分类以及各种专题处理的方法。常用的遥感图像处理方法有光学的和数字的两种。

计算机图形学上机实验指导

计算机图形学上机实验指导 指导教师:张加万老师 助教:张怡 2009-10-10

目录 1.计算机图形学实验(一) – OPENGL基础 ..................................... - 1 - 1.1综述 (1) 1.2在VC中新建项目 (1) 1.3一个O PEN GL的例子及说明 (1) 2.计算机图形学实验(二) – OPENGL变换 ..................................... - 5 - 2.1变换 (5) 3.计算机图形学实验(三) - 画线、画圆算法的实现....................... - 9 - 3.1MFC简介 (9) 3.2VC6的界面 (10) 3.3示例的说明 (11) 4.计算机图形学实验(四)- 高级OPENGL实验...................... - 14 - 4.1光照效果 (14) 4.2雾化处理 (16) 5.计算机图形学实验(五)- 高级OPENGL实验........................ - 20 - 5.1纹理映射 (20) 5.2反走样 (24) 6.计算机图形学实验(六) – OPENGL IN MS-WINDOWS .......... - 27 - 6.1 实验目标: (27) 6.2分形 (28)

1.计算机图形学实验(一) – OpenGL基础 1.1综述 这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。 OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。 本次实验不涉及面向对象编程,不涉及MFC。 1.2在VC中新建项目 1.2.1新建一个项目 选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,如Test,回车即可。VC为你创建一个工作区(WorkSpace),你的项目Test就放在这个工作区里。 1.2.2为项目添加文件 为了使用OpenGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glaux.lib、opengl32.lib,这三个文件位于c:\program files\microsoft visual studio\vc98\lib目录中。 选中菜单Project->Add To Project->Files项(或用鼠标右键),把这三个文件加入项目,在FileView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project->Setting->Link->Object/library Modules 即可。 点击工具条中New Text File按钮,新建一个文本文件,存盘为Test.c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。 1.3一个OpenGL的例子及说明 1.3.1源程序 请将下面的程序写入源文件Test.c,这个程序很简单,只是在屏幕上画两根线。 #include

数字图像处理习题教程文件

数字图像处理习题

一、判断题(10分)(正确√,错误×) 1.图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的要求 (√) 2.在MA TLAB中,uint8是无符号8位整数(√) 3.在MA TLAB中,uint16是无符号16位整数(√) 4.图像的点运算与代数运算不相同(√) 5.点运算也叫灰度级变换(√) 6.线性点运算可以改变数字图像的对比度(√) 7.图像的几何变换也叫图像的点运算(×) 8.图像的平滑操作实际上是邻域操作(√) 9.傅立叶变换后的矩阵处在频域上(√) 10.傅立叶变换后的矩阵处在空域上(×) 11.傅立叶变换,人们可以在空域和频域中同时思考问题(√) 12.像素深度是指存储每个像素所用的位数(√) 13.图像经过变换后,图像的大部分能量都集中在中、高频段(×) 14.图像经过变换后,图像的大部分能量都集中在低频段(√) 15.直方图均衡化也是一种非线性点运算(√) 16.仿射变换是空间变换(√) 17.空间变换是频域变换(×) 18.边缘检测是将边缘像元标识出来的一种图像分割技术(√) 19.灰度直方图能反映一幅图像各灰度级像元占图像的面积比(√) 20.直方图均衡是一种点运算,图像的二值化则是一种局部运算(×) 21.双边滤波法可用于边缘增强(×) 22.均值平滑滤波器可用于锐化图像边缘(×) 23.拉普拉斯算子可用于图像的平滑处理(×) 24.高频加强滤波器可以有效增强图像边缘和灰度平滑区的对比度(√) 25.应用傅立叶变换的可分离性可以将图像的二维变换分解为行和列方向的一维变换 (√) 26.图像分割可以依据图像的灰度、颜色、纹理等特性来进行(√) 27.图像增强有空域和变换域两类(√) 28.加大、减小对比度分别会使图像发生亮处更亮,暗处更暗的直观变化(√) 29.加大、减小亮度分别会使图像发生亮处更亮,暗处更暗的直观变化(×) 30.二值图像就是只有黑白两个灰度级(√) 31.一般来说,图像采样间距越大,图像数据量越大,质量越好;反之亦然(×) 32.用Matlab开辟一个图像窗口的命令是imshow(×) 33.图像尺寸为400*300是指图像的宽为400毫米,高为300毫米(×) 34.一般而言,对于椒盐噪声,均值滤波的效果好于中值滤波(×) 35.与高斯低通滤波器相比,理想低通滤波低通滤波器在图像处理过程中更容易出现振铃 (rings)(√)

计算机图形学实验指导书

计算机图形学实验指导书 授课教师:臧辉 适用专业:计算机学院计算机科学技术 使用班级: 12软件工程 授课时间:2015春季 授课学时:40/30/10学时 使用教材:计算机图形学教程 王汝传编著 人民邮电出版社,2009年版 湖北理工学院计算机学院

实验教学进度表

实验一直线段的生成算法 一、实验目的及要求 1、掌握Bresenham算法的原理; 2、熟悉Bresenham算法的具体c语言实现; 3、掌握dda算法的原理; 4、熟悉dda算法的具体c语言实现。 二、实验学时 4学时 三、实验任务 1、Bresenham算法的c语言实现 2、DDA算法的c语言实现 四、实验重点、难点 对Bresenham算法的原理以及c语言程序的具体实现 (一)Bresenham算法的实现 #include #include #include #include void Bresenham_line(int x0,int y0,int x1,int y1,int color) { 具体代码根据书上算法2.1.6改写 } Void main() { int gdriver = DETECT, gmode, errorcode; char msg[80]; initgraph(&gdriver, &gmode, "");//初始化图形和局部变量Bresenham_line(100,100,300,300,5); Getch(); Closegraph(); } (二)DDA算法的实现 #include #include #include #include void DDAline(int x0,int y0,int x1,int y1,int color) { 根据书上算法2.1-2改写 } void main() { int gdriver = DETECT, gmode;

遥感数字图像处理教程期末复习题

遥感数字图像处理教程 第一章概论 1.1图像和遥感数字图像 1.1.1图像和数字图像 本书定义图像为通过镜头等设备得到的视觉形象 根据人眼的视觉可视性可将图像分为可视图像和不可视图像。可视图像有图片、照片、素描和油画等,以及用透镜、光栅和全息技术产生的各种可见光图像。不可见图像包括不可见光成像和不可测量值 按图像的明暗程度和空间坐标的连续性,可将图像分为数字图像和模拟图像。数字图像是指用计算机存储和处理的图像,是一种空间坐标和灰度不连续、以离散数字原理表达的图像。在计算机内,数字图像表现为二维阵列,属于不可见图像。模拟图像指空间坐标和明暗程度连续变化的、计算机无法直接处理的图像,属于可见图像。 利用计算机技术,可以实现模拟图像和数字图像之间相互转换。把模拟图像转化为数字图像成为模/数转换,记作A/D转换; 数字图像最基本的单位是像素。像素是A/D转换中国的取样点,是计算机图像处理的最小单位;每个像素具有特定的空间位置和属性特征。 1.1.2遥感数字图像 遥感数字图像时数字形式的遥感图像。不同的地物能够反射或辐射不同长波的电磁波,利用这种特性,遥感系统可以产生不同的遥感数字图像。 遥感数字图像中的像素成为亮度值。亮度值的高低由遥感传感器所探测到的地物电磁波的辐射强度决定。由于地物反射或辐射电磁波的性质不同受大气的影响不同,相同地点不同图像的亮度值可能不同。 图像的每个像素对应三维世界中的一个实体、实体的一部分或多个实体。在太阳照射下,一些电磁波被这个实体反射,一些被吸收。反射部分电磁波到达传感器被记录下来,成为特定像素点的值。 1.2压感数字图像处理 1.2.1遥感数字图像处理概述 遥感数字图像处理是利用计算机图像处理系统对遥感图像中的像素进行系列操作的过程。遥感数字图像处理主要包括三个方面 1.图像增强,使用多种方法,如:灰度拉伸、平滑、瑞华、彩色合成、主成分变换K-T变换、代数运算、图像融合等压抑、去除噪声、增强整体图像或突出图像中的特定地物的信息,是图像更容易理解、解释和判读、 图像增强着重强调特定图像特征,在特征提取、图像分析和视觉信息的显示很有用。 2.图像校正:图像校正也成图像回复、图像复原,主要是对传感器或环境造成的退化图像进行模糊消除、噪声滤除、几何失真或非线性校正。 信息提取:根据地物光谱特征和几何特征,确定不同地物信息的提取规则。 1.2.2 遥感数字图像处理系统 数字图像处理需要借助数字图像处理系统来完成。一个完整的遥感数字图像处理系统包括硬件系统和软件系统两大部分。 1.硬件系统 包括计算机、数字化设备、大容量存储、显示器和输出设备以及操作台 1)计算机 是图像处理核心,大的内存和高的CPU速度有助于加快处理的进度。 2)数字化设备

《计算机图形学》 课程实验指导(1)

《计算机图形学》课程实验指导 一.实验总体方案 1.教学目标与基本要求 (1)掌握教材所介绍的图形算法的原理; (2)掌握通过具体的平台实现图形算法的方法,培养相应能力; (3)通过实验培养具有开发一个基本图形软件包的能力。 2. 实验平台与考核 实验主要结合OpenGL设计程序实现各种课堂教学中讲过的图形算法为主。程序设计语言主要以C/C++语言为主,开发平台为Visual C++。 每次实验前完成实验报告的实验目的、实验内容、实验原理、实验代码四部分并接受抽查,实验完成后完成实验结果、实验体会两部分,本次实验课结束前提交。 3. 实验步骤 (1) 预习教材与实验指导相关的算法理论及原理; (2) 仿照教材与实验指导提供的算法,利用VC+OpenGL进行实现; (3) 调试、编译、运行程序,运行通过后,可考虑对程序进行修改或改进。 二. 实验具体方案 实验预备知识 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。 1)与C语言紧密结合: OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL 作图甚至比TC更加简单; 2)强大的可移植性: 微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统。而OpenGL 不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL 的基本命令都做到了硬件无关,甚至是平台无关; 3) 高性能的图形渲染: OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。 总之,OpenGL是一个非常优秀的图形软件接口。OpenGL官方网站(英文)https://www.wendangku.net/doc/1d19145489.html, 下面将对Windows下的OpenGL编程进行简单介绍。如下是学习OpenGL前的准备工作:1.选择一个编译环境 现在Windows系统的主流编译环境有Visual C++,C++ Builder,Dev-C++等,它们都是支持OpenGL的。但这里我们选择Visual C++ 作为学习OpenGL的实验环境。 2.安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。Windows环境下的GLUT下载地址:(大小约为150k) https://www.wendangku.net/doc/1d19145489.html,/resources/libraries/glut/glutdlls37beta.zip Windows环境下安装GLUT的步骤: 1)将下载的压缩包解开,将得到5个文件 2)在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则

ps图形图像处理案例教程试题

《图形图像处理案例教程》题库 一、单选题 1.下列哪种方法能打开文件:() A.“文件”菜单中“打开”命令 B.Ctrl+S C.状态栏上“打开”按钮 D.Ctrl 双击界面空白 答案:A 2.绘制选框和图形时,以某点为中心应按住:()。 A.Ctrl B.Alt C.Shift D.Tab 答案:B 3.橡皮擦工具不包括:()。 A.橡皮擦 B.彩色橡皮 C.背景橡皮擦 D.魔术捧橡皮擦答案:B 4.每个图像文件最多有()图层。 A.80 B.800 C.8000 D.80000 答案:C 5.以下哪些工具属性栏包含“容差”:()。 A.铅笔 B.渐变 C.画图 D.油漆桶 答案:D 6.新建文件时,可选择的图像模式有:()。 A.位图 B.RGB C.CMYK D.全是 答案:D 7.设置绘图颜色可以用哪些方法:()。 A.拾色器 B.颜色面板 C.色板面板 D.都可以 答案:D 8.选择“选择”菜单中()菜单命令可以选取特定颜色范围内的图像。 A.全选 B.反选 C.色彩范围 D.取消选择 答案:C 9.选择“选择”菜单下的()命令可以执行反选操作。 A.全选 B.反选 C.羽化 D.载入选区 答案:B 10.选择“选择”菜单下的()命令可以羽化选区。 A.全选 B.反选 C.羽化 D.载入选区 答案:C 11.下面()选项的方法能对选区进行变换或修改操作。 A.选择[选择]下[变换选区]菜单命令 B.选择[选择]下[修改]子菜单中的命令 C.选择[选择]下[保存选区]菜单命令

D.选择[选择]下[变换选区]菜单命令后再选择[编辑]下[变换]子菜单中的命令。 答案:A 12.选择“编辑”菜单下的()命令可以将剪贴板上图像粘帖到选区。 A.粘贴 B.合并拷贝 C.粘贴入 D.拷贝 答案:C 13.下面哪些方法能对选到的图像进行变换操作()。 A.选择[图像]下[旋转画布]子菜单中的命令 B.按【Ctrl T】键 C.选择[编辑]下[变换]子菜单中的变换命令 D.选择[编辑]下[变换选区]菜单命令 答案:B 14.选择[编辑]下[填充]命令不能对图像区域进行()填充。 A.前景色 B.背景色 C.图案 D.渐变色 答案:D 15..通过图层面板复制层时,先选取需要复制的图层,然后将其拖动到图层面板底部的()按钮上即可。 A.删除 B.新建 C.图层效果 D.新建图层蒙版 答案:B 16.通过下面()方法能创建路径。 A.使用钢笔工具 B.使用转换点工具 C.使用添加锚点工具 D.先建立选区,再将其转化为路径答案:A 17.自由变换的热键是()。 A.Ctrl F B.Ctrl R C.Ctrl E D.Ctrl T 答案:D 18.退出Photoshop程序命令是()。 A.Ctrl+F4 B.Ctrl+W C.ALT+F4 D.ALT+W 答案:B 19.创建一个新文件用命令()。 A.Ctrl O B.Ctrl N C.ALT F4 D.Ctrl W 答案:B 20.按键盘“T”键可以激活工具()。 A.文字工具 B.渐变工具 C.选取工具 D.铅笔工具 答案:A 21.打开图像文件用命令()。 A.Ctrl+O B.Ctrl+X C.Ctrl+D D.Ctrl+W 答案:A

计算机图形学实验指导(一、二)

计算机图形学实验指导(一、二)

计算机图形学实验指导

实验一、直线的扫描转换算法实验 实验目的 掌握中点Bresenham 直线扫描转换算法的思想实验环境 Windows 系统, VC6.0 实验内容 问题描述:给定两个点的坐标P0(x0,y0),P1(x1,y1),使用中点Bresenham 直线扫描转换算法画出连接两点的直线。 中点Bresenham 直线扫描转换算法原理见课本。 实验基本步骤 首先、使用MFC AppWizard(exe) 向导生成一个单文档视图程序框架。 其次、使用中点Bresenham 直线扫描转换算法实现自己的画线函数,函数原型可表示如下: void DrawLine(CDC *pDC, int p0x, int p0y, int p1x, int p1y); 在函数中,可通过调用CDC 成员函数SetPixel 来画出扫描转换过程中的每个点。 COLORREF SetPixel(int x, int y, COLORREF crColor ); 再次、找到文档视图程序框架视图类的OnDraw 成员函数,调用DrawLine 函数画出不同斜率情况的直线,如下图:最后、调试程序直至正确画出直线

实验要求 1 写出中点Bresenham 直线扫描转换算法的程序并在vc6 下编译和调试通过,画出具有各种斜率范围的直线(仅使用GDI 函数SetPixel 函数)。 2 按规定的实验格式写出实验报告,包含实验代码(自己写的画线函数),结果(截图)。

实验二、多边形填充算法实验 实验目的 掌握边标志算法或有效边表算法进行多边形填充的基本设计思想。 实验环境 Windows 系统, VC6.0 实验内容 问题描述:给定多边形的顶点的坐标P0(x0,y0),P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4)?使用边标志算法或有效边表算法进行多边形填充。 边标志算法或有效边表算法原理见课本。 实验基本步骤 首先、使用MFC AppWizard(exe) 向导生成一个单文档视图程序框架。 其次、实现边标志算法或有效边表算法函数,如下: void FillPolygon(CDC *pDC, int px[], int py[], int ptnumb); px:该数组用来表示每个顶点的x 坐标py :该数组用来表示每个顶点的y 坐标ptnumb:表示顶点个数 注意实现函数FillPolygon 可以直接通过窗口的D(C 设备描述符)来进行多边形填充,不需要使用帧缓冲存储。(边标志算法)首先用画线函数勾画出多边形, 再针对每条扫描线, 从左至右依次判断当前像素的颜色是否勾画的边界色, 是就开始填充后面的像素直至再碰到边界像素。注意对顶点要做特殊处理。 通过调用GDI 画点函数SetPixel 来画出填充过程中的每个点。需要画线可以使用CDC 的画线函数MoveTo和LineTo 进行绘制,也可以使用实验一实现的画直线函数。 CPoint MoveTo(int x, int y ); BOOL LineTo(int x, int y ); 实现边标志算法算法需要获取某个点的当前颜色值,可以使用CDC的成员函数 COLORREF GetPixel(int x, int y ); 再次、找到文档视图程序框架视图类的OnDraw 成员函数,调用FillPolygon 函数画出填充的多边形,如下: void CTestView::OnDraw(CDC* pDC) { CTestcoodtransDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here // 绘制之前先把整个窗口涂上背景色( 白色) 以便于下面的填充 RECT Rt; GetClientRect(&Rt); pDC->FillSolidRect(&Rt, RGB(255,255,255)); int ptx[] = {10, 100, 200, 150, 80}; int pty[] = {10, 50, 80, 120, 70};

图像处理基础知识

网络域名及其管理 【教材分析】 本节课是浙江教育出版社出版的普通高中课程标准实验教科书《信息技术基础》第三章第三节的内容。教材内容分图像的几个基本概念和图像的编辑加工两部分。基本概念有:像素、分辨率、位图和矢量图、颜色、图形与图像、文件格式。其中“像素和分辨率”旨在让学生了解描述数字图像的基本概念;“位图和矢量图,图形和图像”重在要求学生分清这两组概念;“颜色”阐述了用计算机三原色描述和存储数字图像颜色的原理,学生应该学会计算一幅图像的存储空间。“文件格式和图像的编辑加工”旨在让学生了解常见的图像文件格式及简单的图像编辑加工。因此不作为教学的重点。由此可见,本节课内容重在概念原理和技术深层思想的探析,为学生今后进一步学习图像的编辑加工奠定了基础。同时,这部分知识也是对第一章“信息的编码”学习的一个承接,在内容上强化了多媒体信息的编码与二进制编码的对应关系。当然,在这些概念的学习中都体现了“由简单到复杂”这一人类认识事物的基本规律和“逐步细化”这一信息技术解决问题的基本思路,都体现了问题解决与“技术更好地为人服务”的基本思想。 【学情分析】 本节课的学习对象为高一学生。通过第一章的学习,他们已经能够掌握信息的编码及二进制的相关知识。但调查发现,对于具体的图像在计算机市如何表示的,学生还只是有一个大概的了解,知道是用二进制表示的。作为必修课的学习,学生对于信息技术不仅要“知其然”,更重要的是“知其所以然”,也即要理解相关技术原理,技术思想以及研究问题的方法。而理解的目的则是为了更好联系日常生活,更好的的应用。基于上述分析,引领他们探究数字图像的基础知识、训练解决信息技术问题的方法。 【课时安排】一课时 【教学目标】 (一)知识与技能 1.了解像素掌握图像分辨率的概念。 2.掌握数字图像颜色的表示方法及存储空间的大小。 3. 了解位图和矢量图,图像和图形的不同。 4. 了解图像文件的文件格式。 5. 在操作体验的基础上理解像素及颜色的表示。 (二)过程与方法 通过教师讲解、自主探究、讨论交流和操作实践,掌握像素、分辨率、数字图像的颜色的表示方式,进而能够运用这些知识分析、解决现实生活中碰到的实际问题。 (三)情感态度与价值观 结合ps图像的讲解训练,培养灌输学生的法制观念提高学生的网络道德水平。 【教学重点】 分辨率的定义及现实生活中的分辨率的使用;。 【教学难点】 数字图像颜色的表示及存储方法 【教学策略】

(完整版)图形图像处理案例教程photoshopcs5教案

PS 教学简案建议学时:64学时

项目一认识Photoshop CS5 本项目参考节数:6课时

教学实施 (总课时:6学时) 【课题导入】(5分钟) 项目任务介绍,学习目标、学习重点阐述。 【教授新课】(总学时:4课时) 任务1认识Photoshop CS5 的工作界面(1课时) 任务分析:认识Photoshop CS5的工作界面以及各个菜单、工具 相关知识:(教师讲解、演示,学生操作)(20分钟) 1.认识工作区,进行屏幕切换操作 2.认识工具箱,选择工具进行操作 3.认识工具与属性栏、面板,对不同工具的属性栏进行操作 任务实施:(20分钟) 教师操作演练,学生进行操作训练,教师进行操作指导。 检查学生操作效果,检查学生完成的任务作品。 任务2文件的管理(1课时) 任务分析:文件管理,包括新建文件、打开文件,把文件以不同的格式存储到指定的位置等,及图层基本操作。 相关知识:(教师讲解、演示,学生操作)(15分钟) 1.文件的管理 2.图层 3.文件格式 任务实施:(教师演示,学生操作训练、教师指导)(30分钟) 教师操作演练,学生进行操作训练,教师进行操作指导。 检查学生操作效果,检查学生完成的任务作品。 任务3制作一张简单的广告(约2课时) 任务分析:制作一张简单的广告。 相关知识:(教师讲解、演示,学生操作)(20分钟)

1.新建图层 2.图层的复制 3.调整图层顺序 任务实施:(教师演示,学生操作训练、教师指导)(45分钟)教师操作演练,学生进行操作训练,教师进行操作指导。 学生进行多次操作训练。 检查学生操作效果,检查学生完成的任务作品。 【教学检测】 (约2课时) 1.完成项目实训 2.项目实训完成情况检查,评价总结 【教学总结】 (10分钟) 教学内容 教学完成情况 学生学习掌握情况

计算机图形学实验指导书

实验1 考察Visual Basic的图形能力实验目的:通过本实验了解Visual Basic的基本图形能力,掌握建立图形坐标系的方法;掌握图形控件和图形方法;能绘制简单几何图形。 实验内容: 1、在窗体上放置一个图形框,两个命令按钮,设置标题为“画图”和“返回”,如下图所示。单击“画图”按钮,在图形框内绘制参数方程的图形;当单击“返回”按钮,程序结束。 参考程序如下: Const pi = 3.14159 Dim a, e, f Dim x1, y1, x2, y2, d As Integer d = 120 Picture1.Cls Picture1.Scale (0, 0)-(640, 480) For a = 0 To 4 * pi Step pi / 60 e = d * (1 + 1 / 2 * Cos(2.5 * a)) x1 = 320 + e * Cos(a) x2 = 320 + e * Cos(a + pi / 6) y1 = 240 - e * Sin(a) y2 = 240 - e * Sin(a + pi / 8) Picture1.Line (x1, y1)-(x2, y2), QBColor(12) Next a 2、编一个循环程序,用line控件对象在屏幕上随机产生20条长度、颜色、宽度不同的直线,如下图所示(提示:在窗体上要先设置一个line控件对象,使其Index值为0)。 参考程序如下: Private Sub Form_Load() For i = 1 To 20 Load Line1(i) ‘添加控件 Line1(i).BorderWidth = Rnd * 10 + 1 Line1(i).BorderColor = QBColor(Rnd * 15) Line1(i).X1 = Form1.Width * Rnd Line1(i).X2 = Form1.Width * Rnd Line1(i).Y1 = Form1.Height * Rnd

相关文档
相关文档 最新文档