2016-04-09 94 views
2

在矩形類中給出了兩個整數變量'a'和'b',如何繪製矩形? 我是新來的Smalltalk和即時學習它的課程。 謝謝!在Smalltalk吱吱聲中繪製矩形

+1

我們需要知道你的Smalltalk方言,因爲每種方式的繪圖都不相同 – Tobias

+0

我不知道你用方言來表示什麼 - 即時通訊使用吱吱聲smalltalk – Infested

+0

啊,是的,我明白了,對不起。 – Tobias

回答

6

Squeak使用Morphic作爲其默認UI。所以,最簡單的做法是創建一個變身

RectangleMorph new 
    extent: [email protected]; 
    openInWorld 

一次評估所有三行。這將創建一個新的RectangleMorph實例,設置其程度從300200(通過用的200一個參數發送該消息到@300)創建的Point,所以它出現在世界還發送它的openInWorld消息。它將在屏幕左上角打開。我們可以發送position:消息與另一個Point參數,但您可以輕鬆地用鼠標指針抓住它並隨意移動它。

在您的課堂上,您可以使用[email protected]來創建範圍點(假設ab是以像素爲單位的矩形的寬度和高度)。

Morphic不錯,因爲它創建了可交互處理的真實對象,例如,通過cmd點擊調出光環。如果你不想這樣做,你也可以直接在屏幕上繪畫。例如: -

Display fill: ([email protected] extent: [email protected]) fillColor: Color red. 

...其中Display是一個全球性的表格實例(含位圖)指的整個佳樂顯示。但是,由於該表達式只是將像素放在屏幕上,它們將被快速覆蓋。 Morphs,相比之下,知道如何在需要時重新繪製自己。

也可以創建自己的Morph子類並實現自定義drawOn:方法。但是這對於像顯示矩形那樣簡單的東西來說可能是過度的。