[英]Drawing A Rectangle in Smalltalk Squeak
给定矩形类中的两个整数变量“ a”和“ b”,如何绘制矩形? 我是Smalltalk的新手,正在为课程学习。 谢谢!
Squeak使用Morphic作为默认UI。 因此,最简单的方法是创建一个Morph :
RectangleMorph new
extent: 300@200;
openInWorld
一次评估所有三行。 这将创建一个新的RectangleMorph
实例,将其范围设置为在300
和200
创建的Point
(通过将消息@
发送到300
以及参数200
),还openInWorld
发送openInWorld
消息,使其出现在世界上。 它将在屏幕左上角打开。 我们可以使用另一个Point
参数将其发送给position:
消息,但是您可以轻松地用鼠标指针将其移到任意位置。
在您的课程中,您可以使用a@b
创建范围点(假设a
和b
是矩形的宽度和高度,以像素为单位)。
Morphic很不错,因为它创建了可以交互操作的真实对象,例如,通过cmd单击以显示Halo 。 如果您不想这样做,也可以直接在屏幕上绘画。 例如:
Display fill: (0@0 extent: 300@200) fillColor: Color red.
...,其中Display
是一个全局Form实例(包含Bitmap ),引用了整个Squeak显示。 但是由于该表达式只是在屏幕上放置了像素,因此它们将很快被覆盖。 相反, Morphs知道如何在需要时重绘自身。
也可以创建自己的Morph子类并实现自定义drawOn:
方法。 但是,对于像显示矩形这样的简单操作来说,这太过分了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.