GnuSmalltalkUsersGuide:BaseChapter 138
- Rectangle
Rectangle
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: Object
범주: 언어-데이터 타입
- 단순한 디스플레이 조작을 위한 Rectangle 클래스의 시작. Rectangles는 Point 클래스가 이용 가능하도록 요한다. Point 클래스로의 확장(extension)이 이 곳에서 이루어지는데, Rectangles가 정의되도록 요하기 때문이다 (변환하기 참조).
Rectangle 클래스: 인스턴스 생성
left: leftNumber right: rightNumber top: topNumber bottom: bottomNumber
주어진 좌표로 된 rectangle을 응답하라.
left: leftNumber top: topNumber right: rightNumber bottom: bottomNumber
주어진 좌표로 된 rectangle을 응답하라.
new
(0 @ 0 모서리: 0 @ 0) rectangle를 응답하라.
origin: originPoint corner: cornerPoint
주어진 모서리로 된 rectangle을 응답하라.
origin: originPoint extent: extentPoint
주어진 원점과 크기로 된 rectangle을 응답하라.
Rectangle: 접근하기
bottom
수신자의 모서리 y를 응답하라.
bottom: aNumber
수신자의 모서리 y를 설정하라.
bottomCenter
수신자의 밑면 중심을 응답하라.
bottomLeft
수신자의 하단 좌측 모서리를 응답하라.
bottomLeft: aPoint
하단 좌측이 aPoint인 수신자를 응답하라.
bottomRight
수신자의 하단 우측 모서리를 응답하라.
bottomRight: aPoint
수신자의 하단 우측 모서리를 변경하라.
center
수신자의 중심(center)을 응답하라.
corner
수시자의 모서리를 응답하라.
corner: aPoint
수신자의 모서리를 설정하라.
extent
수신자의 범위(extent)를 응답하라.
extent: aPoint
원점은 같게 유지하고 수신자의 크기를 변경하라.
height
수신자의 높이를 응답하라.
height: aNumber
수신자의 높이를 설정하라.
left
수신자의 좌측 변의 x를 응답하라.
left: aValue
수신자의 좌변의 x를 설정하라.
left: l top: t right: r bottom: b
수신자 모서리의 4개 좌표를 변경하라.
leftCenter
수신자의 좌변 중심을 응답하라.
origin
수신자의 상단 좌측 모서리를 응답하라.
origin: aPoint
수신자의 상단 좌측 모서리를 aPoint로 변경하라.
origin: pnt1 corner: pnt2
수신자의 원점과 (상단 좌측 모서리) 모서리(하단 우측 모서리)를 변경하라.
origin: pnt1 extent: pnt2
수신자의 상단 좌측 모서리와 크기를 변경하라.
right
수신자의 하단 우측 모서리의 x를 응답하라.
right: aNumber
수신자의 하단 우측 모서리의 x를 변경하라.
rightCenter
수신자의 우변 중심을 응답하라.
top
수신자의 상단 좌측 모서리의 y를 응답하라.
top: aValue
수신자의 상단 좌측 모서리의 y를 변경하라.
topCenter
수신자 윗변의 중심을 응답하라.
topLeft
수신자의 상단 좌측 모서리를 응답하라.
topLeft: aPoint
수신자의 상단 좌측 모서리의 좌표를 aPoint로 변경하라.
topRight
수신자의 상단 우측 모서리를 응답하라.
topRight: aPoint
수신자의 상단 우측 모서리를 aPoint로 변경하라.
width
수신자 너비를 응답하라.
width: aNumber
수신자 너비를 aNumber로 변경하라.
Rectangle: 복사하기
copy
안전을 위해 수신자의 깊은 복사를 리턴하라.
Rectangle: 인쇄하기
printOn: aStream
수신자의 표현을 aStream 상에 인쇄하라.
storeOn: aStream
수신자로 컴파일하는 스몰토크 코드를 aStream 상에 보관하라.
Rectangle: rectangle 함수
amountToTranslateWithin: aRectangle
aRectangle이 aPoint에 의해 해석되고 그 원점이 수신자의 원점 내에서 놓이도록 aPoint를 응답하라.
area
수신자의 면적을 응답하라. 면적은 너비와 높이를 곱한 값으로. Rectangle이 정규화되지 않은 경우 너비는 음수가 될 수도 있다.
areasOutside: aRectangle
aRectangle 외부에 수신자 부분을 포함하는 rectangle의 컬렉션을 응답하라. 수신자 내부에 위치하나 aRectangle 외부에 있는 모든 포인트의 경우 컬렉션 내 정확히 하나의 rectangle만이 그 포인트를 포함할 것이다.
expandBy: delta
aValue 에 의해 확장된 수신자에 해당하는 새 rectangle을 응답하라: aValue가 rectangle인 경우 원점 = 원점 - aValue 원점, 모서리 = 모서리 + aValue 모서리를 계산하라; 그 외의 경우 원점 = 원점 - aValue, 모서리 = 모서리 +aValue를 계산하라.
insetBy: delta
aValue 에 의해 삽입된 수신자에 해당하는 새 rectangle을 응답하라: aValue가 rectangle인 경우 원점 = 원점 + aValue 원점, 모서리 = 모서리 - aValue 모서리를 계산하라; 그 외의 경우 원점 = 원점 + aValue, 모서리 = 모서리 - aValue를 계산하라.
insetOriginBy: originDelta corner: cornerDelta
삽입된 수신자에 해당하는 새 rectangle을 응답하여 원점 = 원점 + originDelta, 모서리 = 모서리 - cornerDelta가 되도록 하라. Delta는 포인트나 숫자가 될 수 있다.
intersect: aRectangle
A와 B rectangle이 겹쳐서 생성된 rectangle을 (존재할 경우) 응답하라. 겹치는 부분이 없다면 nil을 응답하라.
merge: aRectangle
수신자와 aRectangle을 모두 포함하는 가장 작은 rectangle에 해당하는 새 rectangle을 응답하라.
translatedToBeWithin: aRectangle
aRectangle 범위를 넘지 않는 수신자의 복사본을 응답하라.
Rectangle: 검사하기
= aRectangle
수신자가 aRectangle과 같은지를 응답하라.
contains: aRectangle
수신자가 aRectangle의 원점과 aRectangle의 모서리를 포함할 경우 (containsPoint: 참조) true를 응답하라.
containsPoint: aPoint
aPoint가 수신자의 원점과 같거나, 수신자의 원점보다 낮고 우측에 있는 경우 true를 응답하라; aPoint가 수신자의 원점보다 위의 좌측에 있는 경우 (후자의 경우 nil을 응답하란 말 같은데 영문이 없습니다)
hash
수신자에 대한 해시값을 응답하라.
intersects: aRectangle
수신자가 aRectangle과 교차하는 경우, 즉 aRectangle 모서리를 포함하거나 (containsPoint: 참조) aRectangle이 수신자를 포함하는 경우 true를 응답하라.
Rectangle: 변형하기
moveBy: aPoint
원점과 모서리가 aPoint만큼 이동하도록 수신자를 변경하라.
moveTo: aPoint
원점이 aPoint로 이동하고 크기는 변하지 않은 채 남도록 수신자를 변경하라.
scaleBy: scale
원점과 모서리가 scale만큼 곱해지는 수신자의 복사본을 응답하라.
translateBy: factor
원점과 모서리가 aPoint만큼 이동하는 수신자의 복사본을 응답하라.
Rectangle: 버림(truncation)과 반올림하기(round off)
rounded
좌표가 가장 가까운 정수로 반올·내림되는 수신자의 복사본을 응답하라.