5.1.2 图形是复杂数据
图形编程就是编写能创建和处理图形的程序。从一般的意义上说,图形也是数据,只不过与数值、字符串、列表等类型的数据相比,图形数据是非常复杂的数据。 首先,一个图形包含的信息是复杂的。例如,一个圆形需要用一个圆心和一个半径来定义。半径可以用一个简单的数值来表示,但圆心(平面上的一个点)却需要用两个数值型坐 标组成的元组来表示。这还只是大家在平面几何里认识的圆形,在实际的图形应用中还会考 虑圆形内部和轮廓线的颜色、轮廓线线条的粗细等问题,其中颜色又是由红绿蓝三种颜色分 量构成的复杂数据。可见图形确实是很复杂的数据。
其次,对图形的处理是复杂的。对数值,可以加减乘除;对字符串,可以求子串或连接 两个串;对列表可以取成员或求长度。对一个圆形,能做什么呢?数学中会去求面积、求周 长,但在图形应用中更有意思的操作是改变颜色、移动到另一个位置等,这些操作相对于加 减乘除之类显然复杂得多。
那么,在编程语言中如何表示图形这一类的复杂数据、如何操作这类复杂数据呢?编程 语言一般没有内建的图形数据类型和对图形的操作,但会提供标准图形库用于支持图形编 程。本章将介绍如何使用 Python 语言的标准图形库 Tkinter 来进行图形编程。在介绍 Tkinter 之前,需要先简要介绍对象的概念,因为现代的图形库一般都是采用面向对象技术来实现图 形数据类型的。