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

四角形(Rectangle)メモ

back


「落書きとマスクで遊ぶ」を作ってるときにRectangleがらみのあたりで
めちゃくちゃ混乱しちゃったので、ちょっと復習というかメモでごんす。


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




■準備でする



トランスクリプトを出しておきましょう。
画面の左下あたりに移動しておいて下され。
(画面左上は四角形などを表示するんで・・・)
--------------------------------------------
Transcript open.
--------------------------------------------


まずは四角形の表示してこの各位置の関係を見ていくです。
--------------------------------------------
rect1 _ 100@100 extent: 150@100.
Display border: rect1 width: 1.
--------------------------------------------



「origin」

「origin」を取得&表示。
--------------------------------------------
pt _ rect1 origin.
(Form dotOfSize: 5) displayAt: pt.
--------------------------------------------


「corner」

「corner」を取得&表示。
--------------------------------------------
pt _ rect1 corner.
(Form dotOfSize: 5) displayAt: pt.
--------------------------------------------


「center」

「center」を取得&表示。
--------------------------------------------
pt _ rect1 center.
(Form dotOfSize: 5) displayAt: pt.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「topLeft/bottomLeft/bottomRight/topRight」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「topLeft/bottomLeft/bottomRight/topRight」を取得&表示。
--------------------------------------------
p1 _ rect1 topLeft.
p2 _ rect1 bottomLeft.
p3 _ rect1 bottomRight.
p4 _ rect1 topRight.
(Form dotOfSize: 5) displayAt: p1.
(Form dotOfSize: 5) displayAt: p2.
(Form dotOfSize: 5) displayAt: p3.
(Form dotOfSize: 5) displayAt: p4.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「leftCenter/rightCenter/topCenter/bottomCenter」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「leftCenter/rightCenter/topCenter/bottomCenter」を取得&表示。
--------------------------------------------
p1 _ rect1 leftCenter.
p2 _ rect1 rightCenter.
p3 _ rect1 topCenter.
p4 _ rect1 bottomCenter.
(Form dotOfSize: 5) displayAt: p1.
(Form dotOfSize: 5) displayAt: p2.
(Form dotOfSize: 5) displayAt: p3.
(Form dotOfSize: 5) displayAt: p4.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「extent」

「extent」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: rect1 extent.
--------------------------------------------


「width」

「width」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: rect1 width.
--------------------------------------------


「height」

「height」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: rect1 height.
--------------------------------------------




「boundingBox」

「boundingBox」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: rect1 boundingBox.
--------------------------------------------


「corners」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「corners」を取得&表示。
--------------------------------------------
pts _ rect1 corners.
pts do: [: p | (Form dotOfSize: 5) displayAt: p].
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「innerCorners」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「innerCorners」を取得&表示。
--------------------------------------------
pts _ rect1 innerCorners.
pts do: [: p | (Form dotOfSize: 5) displayAt: p].
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「area」

「area」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: rect1 area.
--------------------------------------------




「insetBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「insetBy」を取得&表示。
--------------------------------------------
r _ rect1 insetBy: 20.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「insetOriginBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「insetOriginBy」を取得&表示。
--------------------------------------------
r _ rect1 insetOriginBy: 10 cornerBy: 30.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「expandBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「expandBy」を取得&表示。
--------------------------------------------
r _ rect1 expandBy: 20.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「extendBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「extendBy」を取得&表示。
--------------------------------------------
r _ rect1 extendBy: 20.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「outsetBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「outsetBy」を取得&表示。
--------------------------------------------
r _ rect1 outsetBy: 20.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「adjustTo」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「adjustTo」を取得&表示。
--------------------------------------------
r _ rect1 adjustTo: (0@0 extent: 30@30) along: #right.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「flipBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「flipBy」を取得&表示。
--------------------------------------------
r _ rect1 flipBy: #vertical centerAt: rect1 center + 10.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「rotateBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「rotateBy」を取得&表示。
--------------------------------------------
r _ rect1 rotateBy: #left centerAt: rect1 center.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「scaleBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「scaleBy」を取得&表示。
--------------------------------------------
r _ rect1 scaleBy: 2.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「scaleFrom」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「scaleFrom」を取得&表示。
--------------------------------------------
rect2 _ 150@150 extent: 150@100.
r _ rect1 scaleFrom: rect1 to: rect2.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「translateBy」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------

「translateBy」を取得&表示。
--------------------------------------------
r _ rect1 translateBy: 10.
Display border: r width: 2.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------




もうひとつ四角を追加して2つの四角形の関係を見ていくです。
--------------------------------------------
Display border: rect1 width: 1.
--------------------------------------------
--------------------------------------------
rect2 _ 150@150 extent: 150@100.
Display border: rect2 width: 1.
--------------------------------------------


「intersect」

「intersect」を取得&表示。
--------------------------------------------
mRect _ rect1 intersect: rect2.
Display border: mRect width: 3.
--------------------------------------------

画面をお掃除
--------------------------------------------
Display restore.
--------------------------------------------


「intersects」

「intersects」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: (rect1 intersects: rect2).
--------------------------------------------


「merge」

四角形を表示しなおす。
--------------------------------------------
Display border: rect1 width: 1.
Display border: rect2 width: 1.
--------------------------------------------

「merge」を取得&表示。
--------------------------------------------
mRect _ rect1 merge: rect2.
Display border: mRect width: 3.
--------------------------------------------


「containRects」

「containRects」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: (rect1 containsRect: rect2).
--------------------------------------------


「containPoint」

「containPoint」を取得&トランスクリプトに表示。
--------------------------------------------
Transcript cr; show: (rect1 containsPoint: 120@120).
--------------------------------------------





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


Link to this Page