簡體   English   中英

如何在Squeak的變形上用筆交互式繪制?

[英]How to draw interactively with Pen on a Morph in Squeak?

它無法使Pen在變形中正常工作。

我到達了下面的片段但是我不明白在移動筆之后如何更新變形的視圖。 我試圖在各種(sm,pen,(sm owner))對象中發送“更改”但它沒有解決它。

在下面的片段中,如果我調整窗口大小,則會繪制線條。 或者,如果我把“openInWindow”作為最后一行。

sm := SketchMorph new.
sm clearExtent: 600@600 fillColor: (Color yellow) darker darker.
sm position: 100@100.
sm openInWindow. 
pen := sm penOnMyForm.
pen defaultNib: 4; color: (Color red).
pen up.
pen goto: 10@10. 
pen down.
pen goto: 100@100.

您應該發送到SketchMorph而不是#layoutChanged的消息是

sm revealPenStrokes

這是-pun意圖 - 非常意圖揭示; 不是嗎?

我是怎么找到它的

使用Nicola提供的提示,我調試了sm layoutChanged試圖理解它為何顯示該行。 我之前嘗試過sm changed沒有運氣,所以我知道線索必須在generateRotatedForm 由於這個方法重新定義了ivar rotatedForm ,我查找了所有改變它的方法,因為我懷疑問題是在一些緩存中沒有被changed失效。 很快,選擇器revealPenStrokes從修改rotatedForm的相當短的方法列表中取得了勝利。

我找到了方法,但我不明白邏輯。

最后添加這個。

sm layoutChanged.
pen goto: 150@100.
sm layoutChanged.
" ... and so on "

如果我查看“layoutChanged”定義並嘗試自己發送這些方法,我會看到規則是“generateRotatedForm”的命令...嗯...為什么?

如果一些Morphic專家希望對此有所了解,我將不勝感激。

再見尼古拉

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM