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

フォームで遊ぶ

back


フォームで遊ぶです。
フォームってのは画像を編集加工する隠れた作業場って感じかにゃ。
フォームにはたくさん便利で面白いメソッドがありまするが
ここではそのうちおいらがすこしだけ理解できたものをば。
フォームではあまり描画メソッドはないですが、フォームにいろいろと
描画したいばやいはFormCamvasをつかうといいでするよ。
ブラウザ探検でみつけた面白サンプルコードもみてちょ。


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




■フォームを作成

新規フォームを作成します。
--------------------------------------------
f _ Form extent: 200@200 depth: 32.
--------------------------------------------


フォームを画面に表示です。まっくろね。
--------------------------------------------
f display.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

位置を指定して表示。
--------------------------------------------
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------


マウスクリックの位置にフォームを表示。(ゆっくりとクリックです)
--------------------------------------------
f displayOn: Display at: Sensor waitButton.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------


マウスで大きさを指定してから新規フォーム作成の場合。
--------------------------------------------
r _ Rectangle fromUser.
f _ Form extent: (r width @ r height) depth: 32.
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------




■フォームに描画する

フォームを赤で塗りつぶす。
--------------------------------------------
f fillColor: Color red.
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------


白のドットを100@100の位置に描画。
--------------------------------------------
f colorAt: 100@100 put: Color white.
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

100@100の位置の色情報。これはプリント・イットです。
--------------------------------------------
f colorAt: 100@100.
--------------------------------------------
Alt + p ( Cmd + p ) 



■グラデーション

x方向のグラデーションで塗りつぶす。
--------------------------------------------
f fillFromXColorBlock: [: x | Color r: x g: 0.0 b: 0.5].
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

y方向のグラデーションで塗りつぶす。
--------------------------------------------
f fillFromYColorBlock: [: y | Color r: y g: 0.0 b: 0.5].
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

xy方向のグラデーションで塗りつぶす。
--------------------------------------------
f fillFromXYColorBlock: [:x :y | d _ 1.0 - (x - 0.5) abs - (y - 0.5) abs.
Color r: d g: 0 b: 1.0-d].
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------





■フォームを作成し画面をコピー
画面全体を転写したフォームを新規作成。
--------------------------------------------
f _ Display copy.
f displayAt: 50@50.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------


画面全体を転写・反転したフォームを新規作成。
--------------------------------------------
f _ Display copy reverse.
f displayAt: 50@50.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

画面の一部を転写したフォームを新規作成。
--------------------------------------------
f _ Display copy: (0@0 extent: 300@300).
f displayAt: 50@50.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

これも同じね。
--------------------------------------------
f _ Form fromDisplay: (0@0 extent: 200@200).
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

マウスで選択した画面の一部を転写し新規フォーム作成。
--------------------------------------------
f _ Form fromUser.
f displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------



■拡大・縮小・回転などなど

フォームの画像を拡大。
--------------------------------------------
f2 _ f magnify: f boundingBox by: 2@2.
f2 displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------


フォームの画像を縮小。
--------------------------------------------
f3 _ f shrink: f boundingBox by:2@2.
f3 displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------


回転ね。
--------------------------------------------
f4 _ f rotateBy: 20.
f4 displayAt: 100@100.
--------------------------------------------
回転+スムージングです。
--------------------------------------------
f4 _ f rotateBy: 20 smoothing: 2.
f4 displayAt: 100@400.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------

回転+拡大+スムージングっす。
--------------------------------------------
f4 _ f rotateBy: 20 magnify: 1.5 smoothing: 2.
f4 displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------
右回転でっす。
--------------------------------------------
f4 _ f rotateBy: #right centerAt: 0@0.
f4 displayAt: 100@100.
--------------------------------------------
左回転でする。
--------------------------------------------
f4 _ f rotateBy: #left centerAt: 0@0.
f4 displayAt: 100@100.
--------------------------------------------


上下反転します。
--------------------------------------------
f5 _ f flipBy: #vertical centerAt: 0@0.
f5 displayAt: 100@100.
--------------------------------------------
左右反転。
--------------------------------------------
f5 _ f flipBy: #horizontal centerAt: 0@0.
f5 displayAt: 100@100.
--------------------------------------------
画面をお掃除。
--------------------------------------------
Display restore.
--------------------------------------------



オフセットやね。
--------------------------------------------
f6 _ f offset: 10@10.
f6 displayAt: 100@100
--------------------------------------------



■フォームをビットエディタで編集

マウスで指定する矩形はなるべく小さめにね。
ドットをマウスで描画できます。
--------------------------------------------
f7 _ Form fromUser.
f7 displayAt: 100@100.
f7 bitEdit.
--------------------------------------------
ビットエディタで編集したらビットエディタモーフの赤ハロのメニューで
「accept」を選びます。
(このメニューの下の方にいろいろと便利な機能があるんで試すと面白いです)
もう一度表示させると編集の結果が反映されてまする。
--------------------------------------------
f7 displayAt: 100@100.
--------------------------------------------



■フォームをモーフにする

フォームをモーフにするです。
--------------------------------------------
f asMorph openInWorld.
--------------------------------------------



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



Tuesday, 25 May 2004, 12:07:39 am
copyがよくわかってないみたいでする・・・(涙)--thoru

Monday, 24 May 2004, 11:52:41 pm
いちいち「restore」しなくても「restoreAfter:」使えばよかったかな・・・ま、いいか。--thoru








Link to this Page