View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

フォームカンバスで遊ぶ

back


FormCanvasで遊ぶです。
画面に表示するだけじゃつまんないので
それをSketchMorphに転写するところまでね。

ソースコードを順番にドゥ〜イットしてみてください。
Alt + d ( Cmd + d )




■カンバスを作って画面に描画

FormCanvasを作って表示させまする。
--------------------------------------------
fc1 _ FormCanvas extent: 200@200.
fc1 showAt: 100@100.
--------------------------------------------


ふむふむデフォルトは真っ黒なわけね。
じああ地色を黄色にしちゃいましょう。
--------------------------------------------
fc1 fillColor: Color blue.
fc1 showAt: 100@100.
--------------------------------------------


点をうってみるだす。1ドットなのでわかりにくいかもですがど真ん中に白い点。 
--------------------------------------------
fc1 point: 100@100 color: Color white.
fc1 showAt: 100@100.
--------------------------------------------


お次は直線でござる。
--------------------------------------------
fc1 line: 30@30 to: 170@170 width: 2 color: Color red.
fc1 showAt: 100@100.
--------------------------------------------


一度黄色に塗りつぶしなおすです。
--------------------------------------------
fc1 fillColor: Color yellow.
fc1 showAt: 100@100.
--------------------------------------------


四角の枠線を描いて見ましょうかいな。
--------------------------------------------
fc1 frameRectangle: ((10@10) corner: (190@190)) width: 4 color: Color green.
fc1 showAt: 100@100.
--------------------------------------------


で、楕円も描いちゃおう。
--------------------------------------------
fc1 frameOval: ((10@10) corner: (190@190)) width: 3 color: Color red.
fc1 showAt: 100@100.
--------------------------------------------


塗りつぶしの四角を描いてっと・・・・
--------------------------------------------
fc1 fillRectangle: ((30@30) corner: (170@170)) color: Color blue.
fc1 showAt: 100@100.
--------------------------------------------


塗りつぶしの楕円だよっと。
--------------------------------------------
fc1 fillOval: ((40@40) corner: (160@160)) color: Color orange.
fc1 showAt: 100@100.
--------------------------------------------


文字も描けちゃうですよ。
--------------------------------------------
fc1 drawString: 'Hello, World!' at: 60@90 font: nil color: Color black.
fc1 showAt: 100@100.
--------------------------------------------




■ペンで描画

ペンを使ってぐりぐりりんとな。
--------------------------------------------
| pen |
pen _ Pen newOnForm: fc1 form.
pen defaultNib: 3.
1 to: 50 do: [: i | pen go: i * 4.
		pen turn: 90].
fc1 showAt: 100@100.

--------------------------------------------




■別のカンバスに画像を転写

もうひとつ別のカンバスを作って初めのカンバスの画像を転写してみるです。

まずはカンバスを新たに作ります。初めに作ったカンバスは大きさを200@200にしたけど
今回はマウスドラッグで大きさを決めるって感じにしましたです。
表示するとまだ真っ黒なままね。
--------------------------------------------
f _ Form fromUser.
fc2 _ FormCanvas extent: f extent.
fc2 showAt: 400@100.
--------------------------------------------


初めのカンバス(fc1)から今作ったカンバス(fc2)に画像を転写します。
--------------------------------------------
fc2 paintImage: fc1 form at: fc2 origin.
fc2 showAt: 400@100.
--------------------------------------------



■スケッチモーフを作ってそこに画像を転写

今までやった画像は画面の書き換えですぐ消えちゃうです。
残しておきたい場合ってのもあるですよね?
なので今度はスケッチモーフを出してそれに画像を転写します。

画像は一番最初のカンバス(fc1)から転写するです。
--------------------------------------------
sk _ SketchMorph withForm: fc1 form.
sk openInWorld.
--------------------------------------------


スケッチモーフにした後でもこうすればいろいろと画像を編集できるです。
--------------------------------------------
fc1 paintImage: Form fromUser at: fc1 origin.
sk changed.
--------------------------------------------



下の入力ボックスに書き込んで”add to the page”ボタンで登録出来ます。
修正したい場合はページ左のアイコンの”edit”で出てくる画面で編集可能です。
ページ左のアイコンの”uploads”で画像(JPEG,GIF,PNG)のアップロードもできます。


Friday, 21 May 2004, 1:59:59 am
Display、Form、Canvas,FormCanvasの関係がなんとなくみえてきたです。(ってことはいままでごっちゃまぜになってて混乱しまくってたってことさ・・・涙)でやっとこのページを書くきになったわけだけど。2週間以上かかっちゃった。(汗)でもやっぱここら辺がわかり始めるとおもしろいや。っていうかまさにここらへんを知りたくてうだうだとやってたわけだけどね。FormはFormで奥深いし、BitBltとか興奮しそうなのが待ってるし、やっほ〜い!!ってことで。その分頭を抱え込みそうだすけどね。とほほ。--thoru

Links to this Page