当前位置:文档之家› 图着色

图着色

图着色
图着色

图的着色问题

一、目的

利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用

C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。

二、需求分析

1、问题描述

给定无向连通图G=(V, E),求图G的最小着色数k,使得用k种颜色对G中的顶点着色,可使任意两个相邻顶点着色不同。

2、基本功能

功能一:为了程序的灵活性,可以让程序从磁盘文件中读取图的信息。

功能二:对建好的图进行着色。

3.输入输出

输入:从磁盘文件读入图的顶点连接信息。

输出:在屏幕上输出读取到的,图的顶点间连接信息,方便对照,同时输出所需颜色总数和着色方案。

三、概要设计

1、设计思路:

先从磁盘文件中读取已有图的顶点连接信息,然后建立邻接表存储邻边。之后各顶点按照相邻顶点颜色不同的原则,用一种颜色给尽可能多的顶点涂色,直到所有的顶点都涂色。

2、数据结构设计:

因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储,存储结构如下:

typedef struct Side

{

int data;

struct Side *next;

}Side;

typedef struct Node

{

int color;

struct Side *next,*tail;

}Node;

3、函数定义如下:

1)Node* Build_Node()

操作结果:返回一个Node类型的邻接表

操作:从内存中获得(文件的路径和)文件名,打开文件后,先读取图的顶点数和边数目。按照顶点数为顶点集申请内存空间。之后依次读取一组数据,建立路径。

2)void DFS(Node *node,int num)

参数:传入邻接表的头指针,开始执行的顶点序号(默认从1号开始)

操作结果:根据全局数组Visited的访问记录,找出深度遍历顺序,结果保存在全局数组Order中

操作:先访问传入的顶点,将Visited中对应序号的单元,值改为1,同时该顶点的序号也顺序记录在Order中。然后在该顶点记录的路径中,按照Visited记录的访问记录查找未被访问的节点序号,然后再次调用本函数,直到所有的点都访问过。

3)int Color(Node *node)

参数:已经建立好的邻接表首地址

操作结果:给邻接表的顶点集Color数据域赋好值,并返回所用最大颜色值

操作:按照Order中记录的深度访问顺序,给顶点涂色。涂色过程:用一个变量赋值为一种颜色,依次与跟当前节点有路径的点的颜色比较,直到变量颜色与跟它有路径的其他顶点颜色都不同时,才将变量的颜色赋值给当前顶点,然后给Order中记录的下一顶点涂色

4)Print_color(Node *node,int color_total)

参数:传入已经上好颜色的邻接表和Color(Node *node)函数返回的最大颜色数操作结果:顶点的连接关系和图色方案输出到屏幕

四详细设计

#include

#include

#define length 40 //定义文件名长度

int Bian=0,Vertex=0,*Visited=NULL,*Order=NULL,count=0;

// 定义用到的全局变量

typedef struct Side

{

int data;

struct Side *next;

}Side;

typedef struct Node

{

int color;

struct Side *next,*tail;

}Node;

//********************* 建邻接表 ******************

Node* Build_Node()

{

FILE *fp;

char FileName[length];

int dot1=0,dot2=0,i=1;

Node *node=NULL;

Side *NewSide=NULL;

printf("请输入文件名(可包含路径): ");

gets(FileName);

if( (fp=fopen(FileName,"r"))==NULL )

{ puts("文件打开失败!!"); exit(1); }

fscanf(fp,"%d%*c%d",&Vertex,&Bian); //输入顶点和边的数目

node=(Node*)malloc((Vertex+1)*sizeof(Node) ); // 申请空间

for(i=1;i<=Vertex;i++) // 初始化指针

{

node[i].color=0;

node[i].next=NULL;

node[i].tail=NULL;

}

while(!feof(fp))

{

fscanf(fp,"%d%*c%d",&dot1,&dot2);

NewSide=(Side*)malloc(sizeof(Side)); //为新增节点申请空间

NewSide->next=NULL; //初始化指针

NewSide->data=dot2; //给新节点记录邻接顶点序号

if(node[dot1].next==NULL) //如果是第一次添加邻接边

{

node[dot1].next=NewSide;

//将相应序号的顶点与它的邻接边建立链

node[dot1].tail=NewSide; //tail指向下一个新增节点的位置}

else

{

node[dot1].tail->next=NewSide; //将新增节点插入

node[dot1].tail=NewSide; //tail始终指向末尾}

NewSide=(Side*)malloc(sizeof(Side));

// 给这条边的另一个顶点建立邻接信息

NewSide->next=NULL;

NewSide->data=dot1;

if(node[dot2].next==NULL)

{

node[dot2].next=NewSide;

node[dot2].tail=NewSide;

continue;

}

node[dot2].tail->next=NewSide;

node[dot2].tail=NewSide;

}

printf("\n\n\t\t文件读取成功!!任意键返回...");

getch();

return node;

}

//******************* 深度遍历顶点 *************************

void DFS(Node *node,int num) // num 表示要访问的节点序号

{

int n=0;

count++;

Order[count]=num; //以前未被访问,在此处被访问

Visited[num]=1; //改变对应的标志为已经访问

node[num].tail=node[num].next;

while(node[num].tail!=NULL) //在该顶点的邻边寻找未被访问的点{

n=node[num].tail->data;

if(Visited[n]==0) //找到之后,进行递归

DFS(node,node[num].tail->data);

else

node[num].tail=node[num].tail->next;

}

}

//****************** 给图染色 ********************

int Color(Node *node) //传入图的邻接表和图顶点数

{

Side *check=NULL;

int i=1,j,color=1,Max_color=0;

for(;i<=Vertex;i++)

{

j=Order[i]; //按深度遍历的结果来上色

for(color=1;;color++)

{

check=node[j].next; //开始处与复位功能

while(check!=NULL) //判断当前颜色是否可用

{

if(color == node[check->data].color)

// 判断当前颜色与邻边是否相同

{ break; }

check=check->next;

//颜色不相同,则继续往下比较,直到比完所有相连的节点都不相等

}

if( check==NULL ) //如果当前颜色与邻边都不同,则记录该颜色

{

node[j].color = color;

Max_color= (color > Max_color)? color: Max_color;//记录所用颜色总数

break;

}

}

}

return Max_color;

}

//************* 打印涂色方案 ***********

Print_color(Node *node,int color_total)

{

Side *check=NULL;

int i=1,j=1;

printf("\n图的连接状况如下: \n\t\t ");

for(i=1;i<=Vertex;i++)

{

check=node[i].next;

while(check!=NULL)

{

printf("%d==>%d ",i,check->data);

check=check->next;

}

printf("\n\t\t ");

}

printf("\n此图需要 %d 种颜色: ",color_total);

for(i=1;i<=color_total;i++)

{

printf("\n\n\t\t涂颜色 %d 的点有: ",i);

for(j=1;j<=Vertex;j++)

{

if(node[j].color==i)

{ printf("%d ",j); }

}

}

printf("\n\n\t\t\t\t\t\t任意键返回...");

getch();

}

//************** 菜单 ***********************

Menu()

{

int choose=-1,i=1,color_count=0;

Node *node=NULL;

Side *check=NULL;

do{

system("cls");

printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");

printf("\t\t☆☆\n");

printf("\t\t☆地图着色☆\n");

printf("\t\t☆☆\n");

printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n\n\n");

printf("\t\t ◇ 1 读取文件 \n\n");

printf("\t\t ◇ 2 打印着色方案 \n\n");

printf("\t\t ◇ 0 退出 \n");

printf("\n\n\t\t您想: ");

scanf("%d",&choose);

if( choose<0 || choose>2 ) continue;

switch(choose)

{

case 1:

fflush(stdin); system("cls");

node=Build_Node();

break;

case 2:

fflush(stdin); system("cls");

Visited=(int*)malloc((Vertex+1)*sizeof(int));

//申请跟顶点对应的“是否访问”的记录数组

Order=(int*)malloc((Vertex+1)*sizeof(int));

//记录访问顺序

for(i=1;i<=Vertex;i++){ Visited[i]=0; Order[i]=0; }

DFS(node,1);

// 默认从第一个顶点进行深度遍历

color_count=Color(node);

Print_color(node,color_count); break;

case 0:

printf("\t\t\t\t");

exit(1);

}

}while(1);

}

//******* 主函数 ******************

main(){ Menu(); }

五调试分析

1、从文件中读取数据时:

从文件中读取数据时,要常因为文件尾和数据中的空白间隔符(如空格,换行)等把握不准,而导致读取数据失败。

思考:要学会处理空格和换行,以及缓冲输入输出流中的多余数据。

2、运用指针和malloc函数:

在读取数据,建立链表时,要用到循环,而循环是有时依据指针是否为空,判断到达链表尾。在申请空间后,忘记初始化结构中的指针,导致死循环,或程序访问出错。

思考:要养成初始化变量的习惯。

六测试结果

1、菜单

运行程序后,出现菜单界面如上图,输入选项序号进行下一步。

2、文件内容:

说明:

文件以坐标的方式保存,第一组由顶点数和边数组成;其余的按顺序依次输入边,以空白符隔开。注意:文件末尾,不能有空白字符。

3、读取文件:

在菜单下选择1后,进入读取文件功能,输入文件名,限50字符,读取成功后将出现上图情形。

4、打印图连接状况和着色方案:

涂色前:

涂色后:

红色:颜色1绿色:颜色2 紫色:颜色3

七用户使用说明

使用本程序之前,客户需要自己建立一个图,然后按照图将其顶点数、边数保存在磁盘文件中。文件数据格式如下方所示。有了磁盘文件后,运行程序,选择读取文件,从用户指定位置读取,默认读取位置在与本程序同目录下。之后可按提示进行打印涂色方案。

数据格式:文件以坐标的方式保存,第一组由顶点数和边数组成;其余的尽量按顺序依次输入边,数据组之间以空白字符隔开。

注意:文件末尾,不能有空白字符。

八课程设计总结

本次课程设计,涉及到图的邻接顶点的访问和图的遍历。图的存储结构我选择的是邻接表的形式,在遍历图时是从第一个顶点开始,一次在定点数组中完成所有顶点的遍历,保证了全部的顶点都是可以访问到的。因为要对地图着色,所以着色是一个动态的过程,可以在遍历的过程中完成对地图的着色,每次访问一个结点,先赋值第一种颜色,如果和它的的邻接点的颜色不重复,则对下个顶点开始着色,否则本顶点的颜色转换到下一种,直到能够完成赋值。程序编写本身并不难,思路很清晰,就是赋值和比较之间的来回循环。

写程序的时候查阅了着色问题,直到了这个问题是用计算机进行证明的,地图到目前为止还没有出现这个证明的反例;而且也明白了计算机在现代数学中的重要作用,因为如果没办法归纳证明,那就可以使用计算机进行穷举,只要穷举出来没有反例出现,则可以说明他没有问题。

此次巩固了我对图这种数据结构的认识,掌握了图的建立,图的数据的存取,使我在这块知识上的认识更加巩固了。

图着色

算法设计课程设计 题目图着色问题 姓名学号 专业年级 指导教师职称 2014年 12月 4日

图的m着色问题 1 摘要 (3) 2 图的着色问题 (4) 2.1 图的着色问题的来源 (4) 2.2 图的着色问题的描述 (4) 3算法的基本思想 (4) 3.1 求极小覆盖法----布尔代数法 (4) 3.2 穷举法-Welch Powell着色法 (4) 3.3 回溯法 (4) 3.4 贪心法 (4) 3.5 蚁群算法 (5) 4算法步骤 (5) 4.1 求极小覆盖法----布尔代数法 (4) 4.2 穷举法-Welch Powell着色法 (4) 4.3 回溯法 (4) 4.4 贪心法 (4) 4.5 蚁群法 (4) 5 理论分析(复杂度比较)、实验性能比较 (7) 5.1 复杂度分析 (4) 5.2 实验性能比较 (4) 6 心得体会 (8) 7参考文献 (8) 8 附录 (8)

摘要 图论是近年来发展迅速而又应用广泛的一门新兴学科,已广泛应用于运筹学、网络理论、信息论、控制论、博奕论以及计算机科学等各个领域。一般说来,图的着色问题最早起源于著名的“四色问题”,染色问题不但有着重要的理论价值,而且,它和很多实际问题有着密切联系,例如通讯系统的频道分配问题,更有着广泛的应用背景. 本文首先讨论了人工智能的状态搜索方法在图着色中的具体应用,并用可视化方法展示了低维的着色空间和约束的具体意义。 关键词:图着色 c++代码 2、图的着色问题 2.1图的着色问题的来源 1852年,毕业于伦敦大学的弗南西斯·格思里(Francis Guthrie)在一家科研单位从事地图着色工作时,发现“任何一张地图似乎只用四种颜色就能使具有共同边界的国家着上不同的颜色。” 用数学语言来表示,即“将平面任意地细分为不相重迭的区域,每一个区域总可以用1,2,3,4这四个数字之一来标记,而不会使相邻的两个区域得到相同的数字。”这就是源于地图着色的四色猜想问题。这里所指的相邻区域,是指有一整段边界是公共边界。如果两个区域只相遇于一点或有限多点,就不叫相邻。因为用相同的颜色给它们着色不会引起混淆。 用四种颜色着色的世界地图: 采用四种颜色着色的美国地图: 2.2图的着色问题的描述 (一)图的着色问题是由地图的着色问题引申而来的:用m种颜色为地图着色,使得地图上的每一个区域着一种颜色,且相邻区域颜色不同。 (二)通常所说的着色问题是指下述两类问题:

PS手绘总平面图上色的一点心得

PS手绘总平面图上色的一点心得 平面图, 手绘, 心得, 上色 相关文章: ?无聊画一张(三) ?临近毕业,发几张自己以前的作品! ?临近毕业,发几张自己以前的作品! ?钢笔线稿+手写板 ?设计表达-马克笔效果图技法电子版 大家好,下面给大家介绍一下自己用PS画总平图的一点心得,欢迎各位指教!SketchUp 中文官方论坛4 r/ F* @/ ~3 p. @$ Artlanti s,Pira nesi,C inema4D,Vue,V-Ray,Podium,QUEST3D,Moi3D,BIM作品教程模型插件渲染威客培训BIM$ i8 c' N; @/ Q% ~7 a6 I 我的透视感很差,所以透视图画得不好。在这只聊一下手绘总平图的画法,重点说一下用Photoshop上色。 用PS上色有两种方法,一种是CAD出线稿总图,导入到PS里用鼠标上色。比如下图Artlanti s|Pira nesi|C inema4D|Vue|V-Ray|Podium|QUEST3D|Moi3D|BIM作品教程模型插件渲染威客培训BIM| I: ^+ u x6

" l _2 Z/ i( 一种方法是纯手绘总平画图,导入到PS里用手绘板上色。我比较喜欢这种方法。 1、首先把画好的手绘成稿扫描导入PS, 这是一张在A2纸上画的总平图

SketchUp中文官方论坛% q/ W# \% C) R3 H3 O 国内最好的Sket chUp爱好者交流乐园!Ske tchUp最具专业的中文论坛!; E: K" A2 b% N M6 o- 2、新建一个图层,并设置为“正片叠底”模式Artlanti s|Pira nesi|C inema4D|Vue|V-Ray|Podium|QUEST3D|Moi3D|BIM作品教程模型插件渲染威客培训BIM|) n+ K* S7 \2 z$ @1 X% r2 }; T2 m# {3 国内最好的Sket chUp爱好者交流乐园!Ske tchUp最具专业的中文论坛!/ w- `8 }7 n. X0 @; y* + { J @! s7 h( m/ {2 F4 正片叠底模式,类似于在底稿上加一张硫酸纸,色彩不会掩盖底稿上的线条。国内最好的Sketch Up 爱好者交流乐园!Sket chUp最具专业的中文论坛!$ g4 y* a' k: e) T

园林景观平面图上色教程

一.在ps中打开文件! 从cad中导入的是位图文件,但是一般情况下这只是一幅彩色稿。 无论是bmp还是tif文件,我一般习惯用转换格式的方式改变为黑白格式,这样转换可以保持精度,其他的转换方式多多少少都会有点损失。:) 1.先转换为gray模式。 2.在gray模式中调整对比度,调到最大。 3.再转换回RGB模式。 好了,一幅黑白稿出现 二.分离图线。有些人可能喜欢不分。我习惯分离图线层,因为这样好处有如下: 1.所有的物体可以在图线下面来做,一些没有必要做的物体可以少做或不做。节省了很多时间。 2.物体之间的互相遮档可以产生一些独特的效果! 3.图线可以遮挡一些物体因选取不准而产生的错位和模糊,使边缘看起来很整齐,使图看起来很美。 具体步骤是以colour range 选取方式选中白色,删除。现在图线是单独的一层了。把这层命名为图线层。

三.分离成功。为了观察方便可以在图线后增加一层填充为白色,当然也可直接填充绿色变草地层,白色的好处是画超级大平面图的时候会比较容易了解自己的进度 从现在开始,我每个新增加的图层都会命名。原因: 1.个人习惯。 2. 可以有效防止产生大量无用的废层和无物体层(即空层)。 3. 方便别人,将来别人修改你的图能够很轻松地找到每个物体。

四.种树。现在开始栽树。 需要说明的是,通常我都习惯最后种树,因为树木通常是位图导入,大量的复制会占用机器的存。这幅图例外,先种树,是因为这图既要表现建筑又要表现绿化和景观。先种树可以定下整个图的整体颜色倾向,基调。 先种树,大小植物,再调他们的色彩倾向,你认为应该调什么色调完全凭个人的感觉啦。这图定的基调是偏黄绿色调的暖灰。

染色问题的计数方法

染色问题的计数方法 河北张家口市第三中学王潇 与染色问题有关的试题新颖有趣,其中包含着丰富的数学思想,染色问题,解题方法技巧性强且灵活多变,故这类问题有利于培养学生的创新思维能力,分析问题与观察问题的能力,有利于开发学生的智力。 一、区域染色问题 1.根据乘法原理,对各个区域分步染色,这是处理这类问题的基本的方法。 例1要用四种颜色给四川、青藏、西藏、云南四省(区)的地图染色(图1)每一省(区)一种颜色,只要求相邻的省(区)不同色,则不同染色的方法有多少种? 分析先给西 藏 青海 云南 四川 四川染色有4种方 法,再给青海染色有3种方法,接着给西藏染色有2种方法,最后给云南染色有2种方法,根据乘法原理,不同的染色方法共有4×3×2×2=48种 2.根据共用了多少种颜色分类讨论,分别计算出各种情形的种数,再用加法原理求出不同年拾方法种数。 例2 (2003年全国高考题)如图2,一个地区分为5个行政区域,现给地图着色,要求相邻区域不得使用同一颜色,

现有4种颜色可供选择,则不同的着色方法共有多少种? 分析 依题意至少要 12 3 4 5图2选用3种颜色。 (1) 当选用三种颜色时,区域2与4必须同色, 区域3与5必须同色,有34A 种。 (2) 当用四种颜色时,若区域2与4同色,则区 域3与5不同色,有44 A 种;若区域3与5同色,则区域2与4不同色,有44 A 种,故用四种颜色时共有244A 种。 由加法原理可知满足题意的着色方法共有3 4A +244 A =24+2×24=72种。 3 根据某两个不相邻区域是否同色分类讨论,从某两个不相邻区域同色与不同色入手,分别计算出两种情形 的种数,再用加法原理求出不同染色方法数。 例3 用红、黄、蓝、白、黑五种颜色涂在“田”字形的四 个小方格内(图3),每格涂一种颜色,相邻的两格涂不同的 颜色,如果颜色可以反复使用,共有多少种不同的涂色方法? 12 34 图3 (1)四格涂不同的颜色,方法数为45A ;

ps室内文本平面图填色

室内彩色户型图 户型图是房地产开发商向购房者展示楼盘户型结构的一种手段。随着房地产开发业的飞速发展,对户型图的要求也越来越高,真是的家具模块被应用到户型图中,从而使客户更好的了解户型起了很大的作用。 彩色户型图制作流程: (1)使用以定义的绘图仪器类型将图纸保存为EPS文件 (2)在PS中导入EPS文件 (3)填充墙体、地面 (4)添加家具模块 (5)最终效果处理 一输出EPS文件 户型图一般都是运用软件AutoCAD绘制所得,在运用PS对户型图进行上色和处理,那么我们必须从AutoCAD软件中将户型图导出为Photoshop可以进行编辑的文件格式。1.添加EPS打印机 (1)启动AutoCAD,打开配套光盘提供的“平面布置图.dwg”文件,如图1-1所示 图1-1 打开的“平面布置图” (2)在AutoCAD中选择“文件”∣“绘图仪器管理器”命令,打开Plotters文件窗口,如图1-2所示。 图1-2 打开绘图仪器管理器

(3)双击“添加绘图仪器向导”图标,打开添加绘图仪对话框,如图1-3所示,单击“下一步”按钮。 图1-3 添加绘图仪—简介 (4)打开“添加绘图仪—开始”对话框中选择“我的电脑”选项,如图1-4所示,单击“下一步”按钮。 图1-4添加绘图仪—开始 (5)打开“添加绘图仪—绘图仪型号”对话框中选择如图1-5所示。 (6) 图1-5 添加绘图仪—绘图仪型号 (6)在弹出的“添加绘图仪—输入PCP或PC2”对话框,单击“下一步”按钮,如图1-6

所示。 图1-6添加绘图仪—输入PCP或PC2 (7)选择绘图仪的打印端口,这里选择“打印到文件”的方式,如图1—7所示。 图1—7 添加绘图仪-端口 (8)绘图仪添加完成,输入绘图仪的名称,如图1-8所示,单击“下一步”按钮。 图1-8 添加绘图仪-绘图仪名称 (9)单击“完成”按钮,完成绘图仪添加向导。

地图着色问题

一、需求分析 1、问题描述 现在有一张地图,为了便于区别各个地图上的板块,地图上相 邻的颜色块应该是不同的颜色。现在的任务是给定一张地图,要对其进行着色,相邻的板块之间的颜色不能相同,输出最后 的着色的方案。 2、基本分析 功能一:为了程序的灵活性,可以让程序自由建立图 功能二:为建好的图进行着色。 3、输入输出 输入一张图的信息,正确输入边数和顶点数,输入边的关系(两 个顶点之间的),颜色只要四种,分别用数字1到4表示。 输出时根据每个顶点不同的标号输出着色的结果。 二、概要设计 1、设计思路 给定四种颜色,从选定的第一个顶点开始着色,先是第一种颜 色,如果这个颜色与这个顶点的其他邻接顶点颜色不重复,则 这个顶点可以使用此颜色,程序开始对下一个顶点着色;如果 着色重复,则使用下一种颜色重复上述过程。着色过程就是一 个递归的过程,直到所有的顶点都有着色后结束着色过程

结束

2、数据结构设计: 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构是邻接矩阵,考虑用邻接表是因为一般的地图的某一 个顶点并不会与很多的顶点邻接,如果用邻接矩阵就能符合实 际的需求,虽然占用稍大的空间,但是增强了程序的实际使用 性。 抽象数据类型定义如下: 数据对象是点和边(vex&adj) 数据关系是颜色分布以及边的相邻的两个顶点 基本操作: CreatGrouph(&G); 创建一张需要操作的无向图G Destroy(Graph &G); 初始条件:无向图G存在 操作结果:销毁图G LocateVex(&G,i) 初始条件:无向图G存在 操作结果:若在图G中存在顶点i,则返回该顶点在图中的位置,否则返回其他信息 Trycolor(current &G,store[]) 初始条件:无向图G存在,在图中有第current个顶点

matlab图形着色

matlab图形着色 1.matlab中的颜色查找表函数: (1)autumn:从红色向橘黄色、黄色平稳过渡; (2)bone:为含有较高的蓝色组分的gray颜色查找表; (3)colorcube:包含RGB颜色空间中尽可能多的规则间隔的颜色,它试图提供更多的灰色、纯红、纯绿和纯蓝; (4)cool:由青色和洋红阴影组成的颜色。在青色和洋红间平滑过渡; (5)copper:在黑色和亮铜色间平滑过渡; (6)flag:由红、白、蓝、黑组成。每次索引值增加时,该颜色查找表会完全改变颜色;(7)gray:线性灰阶颜色查找表; (8)hot:在黑、红、橘红、黄、白间平滑过渡; (9)hsv:颜色从红色开始,然后为黄、绿、青、蓝、洋红,最后是红色。特别适合显示周期性函数; (10)jet:在蓝、青、黄、橘红、红色间过渡; (11)lines:生成颜色由坐标系对象的colororder属性和灰色阴影确定; (12)pink:包含品红色的柔和阴影。可以对灰度照片进行棕褐色化; (13)prism:重复红、橘红、黄、绿、蓝、紫色; (14)spring:由洋红和黄色阴影组成; (15)summer:由绿色和黄色阴影组成; (16)white:白色; (17)winter:由蓝色和绿色阴影组成。 2.用colormapeditor可以画出抢眼的图。 [x,y]=meshgrid(-2:0.1:2); z=x.*exp(-x.^2-y.^2); surf(x,y,z,gradient(z)); shading interp; colormapeditor;

图1 图2 图3

总平面图填色

总平面图填色 总平面要出效果,前提是有一份好的Cad图。所以踏实画Cad还是逃不了的。 规范的cad文件,应该是图层分明的。 大的步骤是,不同cad图层导入psd,不同ps图层上色,植物素材填充,整体色调调整。 一.导出矢量图,eps格式文件 由CAD到Photoshop,这需要一个导出图片的环节。 导图有几种方法,尝试总结下来,下面的方法是最为合适的。 Cad导出矢量图片的方法。打印,格式eps。 Ctrl+p 打印,选择打印机。如果是自己的电脑,刚装完cad,应该是没有打印为eps 格式这个选项的,这就需要添加打印机,虚拟的。下面是从零开始的导图步骤: 1.绘图仪配置 “菜单-文件-打印机管理/绘图仪管理”

“添加打印机/添加绘图仪向导”

选择“Adobe” 选择”打印到文件” 为绘图仪命名,这将在打印选择打印机的时候看到.我命名为“导出eps”

“编辑绘图仪配置”,主要修改导出图片的大小,根据制图需要.

完成之后,就可以在打印机选择里面找到“导出eps”项了。

2.打印到文件 根据需要可以调整一下打印的样式,在“打印样式表编辑器”中可以调整不同颜色线的输出颜色、线宽、线型等。这些可以根据需要的效果调整。然后记得勾选“打印样式/按样式打印” 3.导图 总平上色需要分开导图,为自己需要绘制总平彩图的部分画一个边框,在打印的时候选择打印范围为“窗口”。使得每次导出的图层都是一样大小,便于放入Photoshop中拼合。 首先是大致地形,然后是铺地,植物,建筑,标注。这需要天正的“常用图层快捷工具”,关闭不需要的图层,比如标注层可以单独导出一个eps文件。

第8课 给图着色

第8课《给图着色》教学设计 潍坊高新区北海学校张延峰 教学分析: 本课是山东省小学信息技术第一册(上)第二单元《计算机绘画》第8课内容,通过前面的学习,让学生初步认识了金山画王,并学习了用卡通拼图和用画笔绘画,本课教学任务是“倒色”工具的应用,即使用“倒色”工具对图形着色,包括导入图片文件,颜色的选择等。教学目标: 1、知识与技能目标:掌握图片文件的导入方法,掌握“倒色”工具的基本用法,了解每个“倒色”工具的基本特性,合理选择配色完成图形区域倒色。 2、过程与方法目标:以“任务”驱动,通过自主探究学习,培养学生自主学习的能力。 3、情感态度与价值观:通过小组合作完成任务,培养团队协作精神及良好的人际关系;在帮助小海龟的同时,培养学生乐于助人,关爱他人的良好品质。 重点和难点: 1、重点:图片文件的导入,“倒色”工具的使用方法。 2、难点:正确使用“倒色”工具,合理搭配颜色,体现作品的最佳效果。 教学过程: (一)故事导入:

师:今天小海龟要开一个海底party,邀请了很多好朋友,她为party做了精心的准备,粉刷了墙壁,装饰了霓红灯,就在朋友们快要到时,邪恶的海底女巫,将它的家吹跑了。 (二) 学习新知: 【任务一】导入图片文件 1、师:同学们,你能帮助小海龟吗?请同学们根据导学案自主探究,帮小海龟找回它的家(课件出示任务一)。 2、引导学生使用导学案。 师:大家看着手上的导学案,先看一下完成这个任务需要几个步骤?第一步……. 3、学生尝试导入图片文件。组长统计小组内完成情况,写在小组评价表上。 4、师:哪位同学最先找到了,你介绍一下好吗?(加星) 【任务二】用“倒色”工具着色 1、找“倒色”工具。 师:现在小海龟的家找回来了,它却哭了,为什么呀?因为女巫把它家里的颜色都带走了。热心的你能再帮帮它吗?使用什么工具呢?你来找找吧。 师:找到的同学请举手,你能给大家介绍一下这个工具吗?(加星) 学生演示“倒色”工具的位置,并指出有6种“倒色”工具。 2、师:下面请同学们,利用这些工具为小海龟的家找回颜色吧。

彩色平面图制作步骤

二. 分离图线。有些人可能喜欢不分。我习惯分离图线层,因为这样好处有如下: 1.所有的物体可以在图线下面来做,一些没有必要做的物体可以少做或不做。节省了很多时间。 2.物体之间的互相遮档可以产生一些独特的效果! 3.图线可以遮挡一些物体因选取不准而产生的错位和模糊,使边缘看起来很整齐,使图看起来很美。 具体步骤是以colour range 选取方式选中白色,删除。现在图线是单独的一层了。把这层命名为图线层。 三. 分离成功。为了观察方便可以在图线后增加一层填充为白色,当然也可直接填充绿色变草地层,白色的好处是画超级大平面图的时候会比较容易了解自己的进度 从现在开始,我每个新增加的图层都会命名。原因: 1.个人习惯。 2. 可以有效防止产生大量无用的废层和无物体层(即空层)。 3. 方便别人,将来别人修改你的图能够很轻松地找到每个物体。

四. 种树。现在开始栽树。 需要说明的是,通常我都习惯最后种树,因为树木通常是位图导入,大量的复制会占用机器的内存。这幅图例外,先种树,是因为这张图既要表现建筑又要表现绿化和景观。先种树可以定下整个图的整体颜色倾向,基调。先种树,大小植物,再调他们的色彩倾向,你认为应该调什么色调完全凭个人的感觉啦。这张图定的基调是偏黄绿色调的暖灰。

五. 接着做道路和铺装。 选取区域的时候可以用各种选择工具,不要拘泥于一种工具。 填色后调颜色,要和树木色彩协调。注意道路的颜色一定不要用纯灰色的,尽量做成冷灰或暖灰,我这里做成偏黄绿色色调!

六. 做基础设施和地面小装饰,如停车场,沟,支架,彩色钢板等,然后调色,和整体色彩要协调。

给灰度图像着色

练习10(11月26日) 实例1:给灰度图像着色 知识重点:复杂选区的建立、Alpha通道的应用,以及使用Hue/Saturation【色相/饱和度】命令着色的方法。 具体操作步骤: ①打开如图1所示的源图片,单击菜单Image→Mode→RGB Color【图像/模式/RGB颜色】命令,将图像由灰度模式转换为RGB模式。 图1 图2 图3.356 图3.357 ②用磁性套索工具沿着人体轮廓拖动鼠标建立选区,如图2所示。在Channels(通道)调板中单击按钮,将人体轮廓选区保存为一个通道,系统自动将其命名为Alpha l,如图3.356所示。按快捷键【Ctrl+D】取消现有选区,然后使用磁性套索等工具选中头发的大致轮廓。在Channels(通道)调板中单击按钮,将头发选区保存为一个通道,系统自动将其命名为Alpha 2。 ③单击菜单Select→Color Range命令(选择→色彩范围),弹出Color Range对话框,如图3.357所示。在Select(选择)列表框中选择Sampled Colors(取样颜色)项,并单击吸管按钮,然后在对话框预览图中的头发位置处单击,与单击处颜色相近的像素被选中。拖动Fuzziness(颜色容差)滑块调整容差,直至选中头发范围(预览图中白色的部分),单击【OK】按钮,选区如图3.358所示。再按【Shift】键同时用椭圆工具将头发中间区域加选,如图3.359所示。 图3.358 图3.359 图3.360 ④单击菜单Image→Adjustments→Hue/Saturation【图像/调整/色相/饱和度】命令,弹出Hue/Saturation【色相/饱和度】对话框,如图3.360所示。在对话框中选中Colorize (着色)复选框为√,然后拖动Hue(色相)滑块调整头发的颜色,拖动Saturation(饱和度)滑块调整颜色的饱和度,拖动Lightness(明度)滑块调整亮度,将黑发女郎变成了金发女郎。 ⑤按快捷键【Ctrl+D】取消现有选区。使用磁性套索等工具选中人物的衣服,如图3.361所示。在Channels(通道)调板中单击按钮,将衣服选区保存为一个通道,系统自动将其命名为Alpha 3通道,Channels(通道)调板如图3.363所示。 ⑥按步骤④同样的方法,单击菜单Image→Adjustments→Hue/Saturation【图像/调整/色相/饱和度】命令,弹出Hue/Saturation(色相/饱和度)对话框,调整衣服的颜色,按图3.364所示的设置,将女郎的衣服由白色染成红色,如图3.365所示。

2019年六年级奥数题:染色问题(A)

2019年六年级奥数题:染色问题(A) (编者按:由于内容本身的限制,本讲不设填空题) 1.某影院有31排,每排29个座位.某天放映了两场电影,每个座位上都坐了一个观众.如果要求每个观众在看第二场电影时必须跟他(前、后、左、右)相邻的某一观众交换座位,这样能办到吗?为什么? 2.如图是一所房子的示意图,图中数字表示房间号码,每间房子都与隔壁的房间相通.问能否从1号房间开始,不重复的走遍所有房间又回到1号房间? 3.在一个正方形的果园里,种有63棵果树、加上右下角的一间小屋,整齐地排列成八行八列(见图 (a)).守园人从小屋出发经过每一棵树,不重复也不遗漏(不许斜走),最后又回到小屋,行吗?如果有80棵果树,连小屋在内排成九行九列(图(b))呢? (a) (b) 4.国际象棋(下图)去掉对角上两格后,是否可以用31个21 )把象棋盘上的62个小格完全盖住? 5.如果在中国象棋盘上放了多于45只马,求证:至少有两只马可以“互吃”.

6.空间6个点,任三点不共线,对以它们为顶点的线段随意涂以红色或蓝色,是否必有两个同色三角形? 7.如图,把正方体分割成27个相等的小正方体,在中心的那个小正方体中有一只甲虫,甲虫能从每个小正方体走到与这个正方体相邻的6个小正方体中的任一个中去.如果要求甲虫能走到每个小正方体一次,那么甲虫能走遍所有的正方体吗? 8.中国象棋的马走“日”字,车走横线或竖线,下图是半张中国象棋盘,试回 一只马从起点出发,跳了n 步又回到起点.证明:n 一定是偶数. 9.中国象棋的马走“日”字,车走横线或竖线,下图是半张中国象棋盘,试回 一只马能否跳遍这半张棋盘,每一点都不重复,最后一步跳回起点? 10.中国象棋的马走“日”字,车走横线或竖线,下图是半张中国象棋盘,试回

做彩色平面图的方法

PS结合CAD做彩色平面图 PS结合CAD做彩色平面图 室内篇 做好PS彩色平面图的第一步,是养成良好的CAD图的做图习惯。至于做图规范,这里就不多说了,我说的习惯,就是在CAD图做图过程中,要善于分好图层,不同性质的物体最好归好图层,这样CAD图就不会凌乱,也减少文件大小(接下来会看到图层归类后是如何方便了),同时尽可能将CAD的图面整理好,线和线的交接要闭合,不出现空隙,这样会影响你填充的面域。 请大家留意我的CAD图层设置与分布 这个是图层的分布,CAD图做到分层合理,就方便以后的操作 我们以一个会所的平面图为例子 眼前是一个会所的平面图,我们去掉了尺寸的显示以及其他彩色平面图不用标注的东西

把其他图层都给关了,这样,一个平面的轮廓就出来了

设定打印窗口的标记(如下图,红色虚线框是到时框选窗口的大小),利用图层开关功能将需要的分开几层进行虚拟打印,输出图象到PS中进行编辑。具体的打印项目由实际情况决定。在这个例子中,我们要输出的内容如下: 1)墙体以及剪力墙、柱子、门窗 2)家具和洁具 3)地面铺装 4)室内绿化层以及其他 5)文字标注层 切记,要在同一大小的窗口标记下虚拟打印 输出一张家具的CAD图和一张没有家具的CAD图,在PS中打开。利用拖拽功能将几个图层重叠在一个图里,产生了若干个图层,并将图层进行命名,方便以后的编辑。 在这里向大家介绍一个比较快捷的图象批处理方法。 打开了PS后,按 ALT+F9 调出“动作”面板,以一张JPG的彩色线框图为例子,在动作面板里

然后可以录制你的每一步操作。 对于彩色平面图来说,我们处理由CAD输出的图纸的流程比较简单, 1)假如图象是TIFF索引颜色模式的图象,就在图象菜单里将图象模式转换成RGB颜色模式, 2)去色处理 3)自动对比度 4)菜单——选择——颜色范围——点选白色部分删除 5)保存图象为PSD格式文件 然后按兰色方块,结束录制。

PS--手绘总平面图上色的一点心得

PS手绘总平面图上色的一点心得 平面图,手绘,心得,上色 相关文章: ?无聊画一张(三) ?临近毕业,发几张自己以前的作品! ?临近毕业,发几张自己以前的作品! ?钢笔线稿+手写板 ?设计表达-马克笔效果图技法电子版 大家好,下面给大家介绍一下自己用PS画总平图的一点心得,欢迎各位指教!SketchU 中文官方论坛r/F*@/~3p.@$ Artlant is,Pir anesi,Cinema4D,Vue,V-Ray,Podiu m,QUES T3D,Mo i3D,BI M,作品,教程,模型,插件,渲染,威客,培训,BIM$i8c'N;@/Q%~7a6 我的透视感很差,所以透视图画得不好。在这只聊一下手绘总平图的画法,重点说一下用Photoshop上色。 用PS上色有两种方法,一种是CAD出线稿总图,导入到PS里用鼠标上色。比如下图Artlant is|Pir anesi|Cinema4D|Vue|V-Ray|Podiu m|QUES T3D|Mo i3D|BI M|作品|教程|模型|插件|渲染|威客|培训|BIM|I:^+x6

_2Z/i( 一种方法是纯手绘总平画图,导入到PS里用手绘板上色。我比较喜欢这种方法。 1、首先把画好的手绘成稿扫描导入PS, 这是一张在A2纸上画的总平图

SketchU中文官方论坛q/W#\%C)R3H3 国内最好的SketchUp爱好者交流乐园!SketchUp最具专业的中文论坛!E:K"A2b%M6o- 2、新建一个图层,并设置为“正片叠底”模式Artlant is|Pir anesi|Cinema4D|Vue|V-Ray|Podiu m|QUES T3D|Mo i3D|BI M|作品|教程|模型|插件|渲染|威客|培训|BIM|)n+K*S7\2z$@1X%r2};T2m#{3 国内最好的SketchUp爱好者交流乐园!SketchUp最具专业的中文论坛!w-`8}7n.X0@;y* @!s7h(m/{2F4 正片叠底模式,类似于在底稿上加一张硫酸纸,色彩不会掩盖底稿上的线条。国内最好的SketchU 爱好者交流乐园!SketchUp最具专业的中文论坛!g4y*a'k:e)

数据结构课程设计地图着色问题

课程设计报告 课程设计题目:地图着色问题专业:xxxxxxxxx 班级:xxxxxxxxx 姓名:xxxxxxxxx

一:需求分析: 1)已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使 用的颜色总数最少; 2)将各省进行编号,然后利用无向图个顶点之间的边来表示各省的相邻关系; 3)演示程序以用户和计算机的对话方式进行; 4)最后对结果做出简单分析。 二:概要设计 一:设计思路 把34个省看成34个顶点,从选定的第一个顶点开始着色,先试第一种颜色,如果这个颜色与这个顶点的其他邻接顶点的颜色不重复,则这个顶点就是用这种颜色,程序开始对下一个顶点着色;如果着色重复,则使用下一种颜色重复上面的操作。着色过程就是一个递归的过程,直到所有的顶点都处理完后结束着色。 二:数据结构设计 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储。 其中: typedef struct ArcNode { int x; (表示与当前顶点所表示省份相邻的省份的位置信息) struct ArcNode *next; (指向下一个弧结点) }ArcNode; (表示省份之间相邻关系的弧结点) typedef struct { char *name; (顶点所表示的省份的名称) int color; (省份的颜色,用数字表示不同的颜色) ArcNode *firstnext; (指向第一个弧) }shengfen[35]; 2 三:详细设计 该程序一共包含三个模版:分别为初始化模版、着色模版和输出模版。 1.初始化模块

图的染色问题

图的染色问题 应锡娜06990213@https://www.doczj.com/doc/dc663156.html, (浙江师范大学初阳学院,浙江金华321004) 摘要:本文介绍了图染色问题的提出、应用及意义,主要对已取得的研究成果及当今的研究状况进行了阐述。 关键词:图;染色;色数 一、引言 图染色问题起源于著名的“四色猜想”[1]问题。早在一百多年前的1852年,英国Guthrie提出了用四种颜色就可对任意一张地图进行染色的猜想。即对世界地图或任何一个国家的行政区域地图,最多用四种颜色就可以对其染色,使得凡是相邻的国家或相邻的区域都着以不同的颜色。 二、研究与发展 “四色猜想”提出后,一些数学家着手研究这个猜想,力图给出证明。时隔二十七年后,1879年Kempe给出了“四色猜想”的第一个证明,又过了十一年,1980年Hewood发现Kempe的证明是错误的。但他指出,Kempe的证明方法虽然不能证明“四色猜想”,却可以证明用五种颜色就够了。此后,“四色猜想”一直成为数学家们感兴趣而未能解决的世界数学难题。直到1976年6月美国数学家伊利诺斯大学教授Appel与Haken宣布:他们用计算机证明了“四色猜想”是正确的。因此,从1976年以后,就把“四色猜想”改称为“四色定理”了。[2] 值得指出的是,Appel与Haken的证明,计算机运行了1200个小时。诚然用计算机证明数学难题实在是一个伟大的尝试或创举,但是,世界数学家们仍期待着用常规的数学方法证明“四色定理”。目前仍有许多数学家在潜心研究,寻求常规的证明方法。 地图的特点在于,多个区域位于同一平面上,每个区域可以是毫无规则的各种形状,任意两个区域可以有公共边界,但不能有公共区域。于是人们开始研究所谓“平面图”。人们把地图中的每一个区域称为一个“面”,地图染色就是对“面”染色。进一步研究之后人们把地图中的每个区域的“面”视为一个点,若两个“面”相邻接,即地图中的两个区域有一段或几段公共边界,则在表示这两个区域的点之间连线,该连线可以是直线也可以是任意形状的曲线,并称之为边。如此,就可以把一张地图改画为一个平面上的图,人们把该图称为地图的对偶图。其特点是:所有的点及边均处在同一平面上,并且任意两条边除端点外可以不交叉,人们称这样的图为平面图。例如图1的对偶图如图2所示。

地图着色问题

地图着色问题 说明:任何平面区域图都可以用四种颜色着色,使相邻区域颜色互异。这就是四色定理。 要求给定区域图排出全部可能的四着色方案。 区域相邻关系用矩阵表示,每个区域又一个序号,(从0七连续排列)adj【i】【j勘硎厩 騣,j相邻。数组cilir记录每个区域上着的色,用1.2.3.4表示。 程序应包括四个函数: coloring对所给邻接矩阵找着全部着色方案 色乐的:对区域i在指定的颜色范围内选出可选颜色或报告失败(失败返回-1) 辞令次日卡:判断对区域i在指定的颜色c是否可用 八寸卡:选色失败时或完成一种着色方案时进行回溯 另外可定义output函数,每次输出一种着色方案 /* 递归算法: void Coloring(区域 n) 1. 令颜色集ClrSet={ 没有被区域n的邻居区域使用的颜色 }. 2. 如果ClrSet是空集,返回. 3. 对ClrSet中的每种颜色c,作循环: 3.1 为区域n着色c。 3.2 如果所有区域都已着色(n是最后一个区域),那么显示/保存着色结果. 3.3 否则对下一个尚未着色的区域(n+1),调用Coloring(n+1). 4. 把区域n变为没有着色的区域. -------------------------------------------------------- */ template class CColoring { private: typedef int node_type; typedef int color_type; typedef std::set node_set; typedef std::vector color_array; public: void operator()(const int _Matrix[node_count][node_count]) {

彩色总平面图制作(完美版)

[设计心得]彩色总平面制作扫盲 总平填色(一)——制作概述 总平填色的制作需要使用的软件主要是AutoCAD和PhotoShop这两个软件。AutoCAD主要的作用是:前期对图纸整理并通过虚拟打印来打印输出TIFF格式文件,后期整个制作流程中对图纸的观察。PhotoShop 主要的作用是:对AutoCAD输出的TIFF格式文件进行色彩的填充、材质的赋予、光影的分布、环境的美化等一系列的操作。其中图01是AutoCAD格式的规划图,图02是经过PhotoShop处理后的总平填色图。

总平填色的制作流程: 一、图纸的整理。通常图纸的整理是将图纸整理分为整体框架层和文字说明层两层,遇到较为复杂的图纸 我们可以根据需要把图层划分的更加细致,如建筑层、停车位层、铺装层、水系层等。(使用软件:AutoCAD) 二、图纸的打印与输出。我们常用的输出格式是TIFF不压缩格式,但AutoCAD中默认的打印输出设 置中没有TIFF不压缩格式,需要我们另行添加。(使用软件:AutoCAD) 三、整体大环境的处理。在这个环节中我们主要是将AutoCAD输出的整体框架层和文字说明层合并 到一个画布里,要把规划内部和外部的绿地划分开,主干道和小区内部道路划分开,以及对水系的基本色彩填充。(使用软件:PhotoShop) 四、建筑的处理。在这个环节中我们要将建筑的部分制作出来,包括主体建筑部分的制作、女儿墙的 制作、光影关系的处理、坡屋顶的处理、玻璃顶的处理等。在有的规划中需要对已有建筑和拟建进行区分,对住宅和公建、商业进行区分。(使用软件:PhotoShop) 五、水系的处理。在这个环节中我们要将水系的光感、色感、质感处理到位,有些规划中小区中央景 观组团中还有喷泉和瀑布的制作。(使用软件:PhotoShop) 六、铺装的添加。在这个环节中我们要将规划中的硬质铺装根据AutoCAD中规划的变化来分别添加。 (使用软件:PhotoShop) 七、绿化的处理。绿化在总平填色中是较为繁杂的,但一张好的总平填色绿化也起到了举足轻重的作 用。这里我们要注意主干道的道旁树和小区内部的道旁树要有所区分,内部美化用的植物要丰富,色感和光感要有变化。(使用软件:PhotoShop) 八、细节的美化。在这个环节中我们要给商业建筑前面添加一些休闲的遮阳伞,大面积的绿化中点缀 一些张拉膜、以及假山、塑石等,停车位和主干道上添加一些车辆。还需要对整体大环境的光感和色感进行细节的调整。(使用软件:PhotoShop)

怎么给平面图上色

怎么给平面图上色 总平面图是投标中的第一张表现图,作用与性质不用说了吧,应该认真点画。 一. 在ps中打开文件! 从cad中导入的是位图文件,但是一般情况下这只是一幅彩色稿。 无论是bmp还是tif文件,我一般习惯用转换格式的方式改变为黑白格式,这样转换可以保持精度,其他的转换方式多多少少都会有点损失。:) 1.先转换为gray模式。 2.在gray模式中调整对比度,调到最大。 3.再转换回RGB模式。 好了,一幅黑白稿出现了! 二. 分离图线。有些人可能喜欢不分。我习惯分离图线层,因为这样好处有如下: 1.所有的物体可以在图线下面来做,一些没有必要做的物体可以少做或不做。节省了很多时间。 2.物体之间的互相遮档可以产生一些独特的效果! 3.图线可以遮挡一些物体因选取不准而产生的错位和模糊,使边缘看起来很整齐,使图看起来很美。

具体步骤是以colour range 选取方式选中白色,删除。现在图线是单独的一层了。把这层命名为图线层。 三. 分离成功。为了观察方便可以在图线后增加一层填充为白色,当然也可直接填充绿色变草地层,白色的好处是画超级大平面图的时候会比较容易了解自己的进度 从现在开始,我每个新增加的图层都会命名。原因: 1.个人习惯。 2. 可以有效防止产生大量无用的废层和无物体层(即空层)。 3. 方便别人,将来别人修改你的图能够很轻松地找到每个物体。

四. 种树。现在开始栽树。 需要说明的是,通常我都习惯最后种树,因为树木通常是位图导入,大量的复制会占用机器的内存。这幅图例外,先种树,是因为这张图既要表现建筑又要表现绿化和景观。先种树可以定下整个图的整体颜色倾向,基调。 先种树,大小植物,再调他们的色彩倾向,你认为应该调什么色调完全凭个人的感觉啦。 这张图定的基调是偏黄绿色调的暖灰。

数据结构课程设计报告地图着色问题

课程设计报告 课程设计题目:地图着色问题 专业:xxxxxxxxx 班级:xxxxxxxxx 姓名:xxxxxxxxx

一:需求分析: 1)已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使 用的颜色总数最少; 2)将各省进行编号,然后利用无向图个顶点之间的边来表示各省的相邻关系; 3)演示程序以用户和计算机的对话方式进行; 4)最后对结果做出简单分析。 二:概要设计 一:设计思路 把34个省看成34个顶点,从选定的第一个顶点开始着色,先试第一种颜色,如果这个颜色与这个顶点的其他邻接顶点的颜色不重复,则这个顶点就是用这种颜色,程序开始对下一个顶点着色;如果着色重复,则使用下一种颜色重复上面的操作。着色过程就是一个递归的过程,直到所有的顶点都处理完后结束着色。 二:数据结构设计 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储。 其中: typedef struct ArcNode { int x; (表示与当前顶点所表示省份相邻的省份的位置信息) struct ArcNode *next; (指向下一个弧结点) }ArcNode; (表示省份之间相邻关系的弧结点) typedef struct { char *name; (顶点所表示的省份的名称) int color; (省份的颜色,用数字表示不同的颜色) ArcNode *firstnext; (指向第一个弧) }shengfen[35];

第8课 给图着色

第8课给图着色 备课时间:10.19 上课时间:10.2 7 教学目标: 1、知识目标:掌握着色工具的基本用法,了解着色工具面板中每个着色工具的基本特性,合理选择配色完成图形区域着色。 2、技能目标:能够使用“档案管理”按钮打开和保存图片,学会使用着色工具对图形进行各种形式的着色。 3、情感目标:培养学生审美观念,激发学生创作欲望,培养审美观。重点和难点: 1、重点:正确打开和保存图片文件,灵活使用不同的着色工具对图形合理配色。 2、难点:正确使用配色工具,合理搭配颜色,体现作品的最佳效果。知识点: 1、使用“档案管理”打开图片。 2、金山画王的着色工具打开方法。 3、认识掌握几种着色工具的作用。 4、作品的配色选择。 课时安排:1课时。 教学过程: (一)导入:复习打开已保存的图,看这幅图有何缺点。导入到着色。

(二)新知园: 1、着色工具的选择 ?学生尝试。(指导学生着色工具的打开方法,然后让学生练习) 2、通过用“着色”工具着色,教授着色工具栏的使用方法。(边讲解边演示) ?练习(可穿插进行)。 3、学习各种不同的着色方法 ?自由练习,尝试不同着色工具,体会效果。 (三)大显身手 指导学生创作《小兔子摘苹果》图 (四)聪明驿站 尝试吸管与魔术棒,学习使用“吸色”工具进行绘画。 (五)你知道吗 美术知识,颜色的冷暖,有必要讲一下 (六)学生自由绘画。然后展示自己的作品。 (七)课堂小结。 教学后记:通过本节的学习,使学生掌握了着色工具的基本用法,了解着色工具面板中每个着色工具的基本特性,合理选择配色完成图形区域着色。并能够使用“档案管理”按钮打开和保存图片,学会使用着色工具对图形进行各种形式的着色。

用回溯法求解图的m着色问题

实验二用回溯法求解图的m着色问题 一、实验目的 1 2、使用回溯法编程求解图的m着色问题。 二、实验原理 回溯法是一个既带有系统性又带有跳跃性的的搜索算法。回溯法在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任何一个结点时,总是先判断该结点是否肯定不包含问题的解,如果肯定不包含,则跳过对以该结点为根的子树搜索。否则,进入该子树,继续按深度优先的策略进行搜索。 回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可结束。 回溯法从开始结点(根结点)出发,以深度优先搜索的方式搜索整个解空间。这个开始结点就成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个新结点就成为一个新的活结点,并成为当前扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已无活结点时为止。

三、问题描述 给定一个无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。若一个图最少需要m种颜色才能使图中任何一条边连接的2个顶点着有不同的颜色,则称这个数m为该图的色数。求一个图的色数m的问题称为图的m可着色优化问题。设计一个算法,找出用m种颜色对一个图进行着色的不同方案。 四、算法设计与分析 用邻接矩阵a来表示一个无向连通图G=(V,E)。用整数1,2,…,m来表示m 种不同的颜色。x[i]表示顶点i所着的颜色来,则问题的解向量可以表示为n元组x[1:n]。问题的解空间可表示一棵高度为n+1的完全m叉树。解空间树的第i层中每一结点都有m个儿子,每个儿子相应于x[i]的m个可能的着色之一,第n+1层结点均为叶结点。 在回溯算法Backtrack中,当i>n时,表示算法已搜索至一个叶结点,得到一个新的m着色方案,因此当前已找到的可m着色方案数sum增1。当i≤n时,当前扩展结点Z是解空间树中的一个内部结点。该结点有x[i]=1,2,…,m。对当前扩展结点Z的每一个儿子结点,由函数Ok检查其可行性,并以深度优先的方式递归地对可行子树进行搜索,或剪去不可行子树。 五、实验结果 源程序: #include using namespace std; int color[100],sum; bool ok(int k,int c[100][100]) { for(int i=1;i

相关主题
文本预览
相关文档 最新文档