Skip to Main Content
C++程序设计:原理与实践(进阶篇)(原书第2版)
book

C++程序设计:原理与实践(进阶篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
10h 35m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(进阶篇)(原书第2版)

18.9 Rectangle

在屏幕上最常见的形状是矩形,部分是因为文化(大多数门、窗、照片、墙、书柜、页等都是矩形的),部分是因为技术(保证坐标位于矩形空间内,比任何其他形状都简单)。无论如何,矩形是如此常见,因而GUI系统直接支持矩形,而不是把它们当作四个角都是直角的多边形。

使用两个顶点(左上角和右下角),或者一个顶点(左上角)和宽度、高度就可以定义矩形。构造函数可以定义如下:

每个构造函数都会恰当地对成员变量h和w进行初始化(使用成员初始化语法,见9.4.4节),并将矩形左上角点保存在Rectangle的基类Shape中(使用add())。此外,还进行了完整性检查:我们当然不希望Rectangle的高度和宽度是负数。

一些图形/GUI系统对矩形特殊对待的原因之一是,判断哪些像素位于矩形内部的算法要比Polygon和Circle等其他形状简单得多,因而也快得多。因此,对于矩形,“填充”操作——也就是将区域内的像素设置为指定颜色的操作很常用,而其他形状则较少应用这个操作。我们可以在构造函数中设定填充颜色,或者用set_fill_color()函数进行设定(Shape类提供的颜色相关的操作之一):

运行结果为:

当不设定填充颜色时,矩形是透明的,这也是为什么在上图中你可以看到黄色矩形rect00的一角。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

JAVASCRIPT之美|聽頂尖程式設計師闡述他們的思維

JAVASCRIPT之美|聽頂尖程式設計師闡述他們的思維

Anton Kovalyov
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9787111562528