繁体   English   中英

在Smalltalk吱吱声中绘制矩形

[英]Drawing A Rectangle in Smalltalk Squeak

给定矩形类中的两个整数变量“ a”和“ b”,如何绘制矩形? 我是Smalltalk的新手,正在为课程学习。 谢谢!

Squeak使用Morphic作为默认UI。 因此,最简单的方法是创建一个Morph

RectangleMorph new
    extent: 300@200;
    openInWorld

一次评估所有三行。 这将创建一个新的RectangleMorph实例,将其范围设置为在300200创建的Point (通过将消息@发送到300以及参数200 ),还openInWorld发送openInWorld消息,使其出现在世界上。 它将在屏幕左上角打开。 我们可以使用另一个Point参数将其发送给position:消息,但是您可以轻松地用鼠标指针将其移到任意位置。

在您的课程中,您可以使用a@b创建范围点(假设ab是矩形的宽度和高度,以像素为单位)。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM