(四)平面图与着色——图论笔记系列

4,平面图与着色

4.1,平面图

定义:把G画在平面上,使得除了顶点外,任意两条边不交叉,称G可嵌入平面,G为平面图。

性质:一个平面图G把平面分成若干连通片,这些连通片称为G的区域,或G的一个面。其中有界区域称为内部面或有界面;无界区域称为外部面或无界面。G的面组成的集合用Φ表示。

边界:每个面所有边构成的回路;

面的度数(次数):面的边界的长度,即为d(R)

极大平面图

定义:若在任意两个不相邻 的结点vi,vj之间加入边{vi,vj},就会破坏图的平面性,则称G是极大平面图。

image-20201122222121631

定理:

  1. 有限平面图中,所有面的次数之和等于边数的2倍。
  2. 欧拉公式:任意连通平面图G,若有n个结点,m条边和r个面,则欧拉公式n-m+r=2成立。

欧拉公式的推论1:

image-20201122214839351

比如:证明 K 5 K_5 K5是非平面图。

因为,由推论1知: K 5 K_5 K5有5个顶点10条边,而3*5-6=9<10;不满足条件。

image-20201122215419085

欧拉公式的推论2:

image-20201122215857997

证明略(提示:G的每一个面的度数至少为4)。

比如:证明 K 3 , 3 K_{3,3} K3,3是非平面图。

因为K33中没有长度为3的圈,每个面的度数至少为4。所以9 >2*6-4,不满足条件。

image-20201122221329469

判定:

定义:

2度顶点内扩充:在图G的边上插入一个2度顶点,使一条边分成两条边,称将图在2度顶点内扩充;

2度顶点内收缩:去掉一个图的2度顶点,使关联它们的两条边合并成一条边,称将图G在2度顶点内收缩。

同胚:两个图G1和图G2,若图G1和图G2同构,或者通过多次在2度点内扩充或者收缩,

​ 它们能够同构,则称图G1和图G2是同胚的。

image-20201122224430938

4.2,对偶图

任何一个平面图都有一个与之对应的平面图,称之为对偶图。

image-20201123123759633 image-20210106144734173

4.3,图的着色

image-20201208204626137 image-20201208205159233

4.4,图的色多项式

定义:图G的不同K-可着色的数目称为图G的色多项式。记作f(G,k).

image-20201208210639398

对三阶完全图K3而言,有f(K3,k)=k(k-1)(k-2)。

一般地,有f(Kp,k)=k(k-1)(k-2)…(k-p+1)。

image-20201208211845061

也就是说,对于一个色多项式可以按照多一条边+少一个顶点的方式进行拆分,直到所得子图都是完全图为止。

image-20201208212147516

根据色多项式求色素数:

f ( G , k ) = f ( K n 1 , k ) + f ( K n 2 , k ) + . . . + f ( K n r , k ) f(G,k)=f(K_{n1},k)+f(K_{n2},k)+...+f(K_{nr},k) f(G,k)=f(Kn1,k)+f(Kn2,k)+...+f(Knr,k),其中,λ(G)=min{n1,n2,…,nr}。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,关于绘制多边形,我会为您提供一些OpenGL学习笔记。 首先,我们需要了解一下OpenGL绘制多边形的基本流程。OpenGL绘制多边形的过程包括三个基本步骤:指定顶点数据、指定绘制方式和执行绘制。 指定顶点数据:在OpenGL中,我们可以使用glVertex等函数来指定多边形的顶点。例如,如果我们要绘制一个三角形,我们可以使用以下代码: ``` glBegin(GL_TRIANGLES); glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); ``` 其中,glBegin和glEnd函数用来指定绘制的方式,GL_TRIANGLES表示绘制三角形。glVertex3f函数用来指定三角形的三个顶点,每个顶点由三个坐标值组成。 指定绘制方式:OpenGL支持多种绘制方式,例如GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN等。在上面的代码中,我们使用了GL_TRIANGLES来指定绘制三角形的方式。 执行绘制:最后,我们需要调用glDrawArrays函数来执行绘制。例如,如果我们要绘制一个三角形,我们可以使用以下代码: ``` glDrawArrays(GL_TRIANGLES, 0, 3); ``` 其中,GL_TRIANGLES表示绘制三角形的方式,0表示顶点数组的起始位置,3表示顶点的数量。 以上就是OpenGL绘制多边形的基本流程,下面我们来看一下如何绘制着色多边形。 绘制着色多边形的过程与绘制普通多边形的过程基本相同,只需要在绘制前调用glColor函数来指定颜色即可。例如,如果我们要绘制一个红色的三角形,我们可以使用以下代码: ``` glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); // 指定颜色为红色 glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); ``` 其中,glColor3f函数用来指定颜色,三个参数分别表示红、绿、蓝三个颜色通道的值,取值范围为0到1。 希望以上内容能够帮助到您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值