GnuSmalltalkUsersGuide:BaseChapter 129
- Point
Point
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: Object
범주: 언어-데이터 타입
- 단순한 디스플레이 조작을 위한 Point 클래스의 시작. 철저하게 검사되진 않았으나 기본 프리미티브나 Rectangle 클래스의 요구에는 잘 작동하는 듯 보인다.
Point 클래스: 인스턴스 생성
new
두 좌표가 0으로 설정된 포인트를 생성하라.
x: xInteger y: yInteger
주어진 좌표로 된 새 포인트를 생성하라.
Point: 접근하기
x
x 좌표를 응답하라.
x: aNumber
x 좌표를 aNumber로 설정하라.
x: anXNumber y: aYNumber
x와 y 좌표를 각각 anXNumber와 aYNumber로 설정하라.
y
y 좌표를 응답하라.
y: aNumber
y 좌표를 aNumber로 설정하라.
Point: 산술
* scale
Number 또는 Point가 가능한 scale을 수신자와 곱하라.
+ delta
Number 또는 Point가 가능한 delta를 수신자와 합하라.
- delta
Number 또는 Point가 가능한 delta를 수신자로부터 제하라.
/ scale
Number 또는 Point가 가능한 scale로 수신자를 나누되 정밀도를 손실하지 않도록 하라.
// scale
Number 또는 Point가 가능한 scale로 수신자를 나누되 음의 무한대에서 자른다.
abs
수신자의 절대값을 좌표로 가진 새 포인트를 응답하라.
Point: 비교하기
< aPoint
수신자가 aPoint보다 높고 좌측에 있는지 응답하라.
<= aPoint
aPoint가 수신자와 같은지, 아니면 수신자가 aPoint보다 높고 좌측에 위치하는지 응답하라.
= aPoint
수신자가 aPoint와 같은지 응답하라.
> aPoint
수신자가 aPoint보다 낮고 우측에 위치하는지 응답하라.
>= aPoint
aPoint가 수신자와 같은지, 아니면 수신자가 aPoint보다 낮고 우측에 위치하는지 응답하라.
max: aPoint
aPoint보다 낮고 우측에 위치한 경우 self를 응답하고, 그 외의 경우 aPoint를 응답하라.
min: aPoint
aPoint보다 높고 좌측에 위치한 경우 self를 응답하고, 그 외의 경우 aPoint를 응답하라.
Point: 변환하기
asPoint
수신자를 응답하라.
asRectangle
원점이 self인 빈 rectangle을 응답하라.
corner: aPoint
원점이 수신자이고 모서리가 aPoint인 Rectangle을 응답하라.
extent: aPoint
원점이 수신자이고 범위가 aPoint인 Rectangle을 응답하라.
hash
수신자에 대한 해시값을 응답하라.
Point: 포인트 함수
arcTan
(0, 0)에서 시작해 (1, 0)로 이동하는 ray와 수신자 사이의 각도(시계 반대 방향으로 측정)를 응답하라 - 예: 3시.
dist: aPoint
수신자와 aPoint 간 거리를 응답하라.
dotProduct: aPoint
수신자와 aPoint 간 내적(dot product)을 응답하라.
grid: aPoint
좌표가 가장 가까운 aPoint의 배수로 반올·내림하는 새 포인트를 응답하라.
normal
Point를 시계 방향으로 90도 회전하여 단위 벡터를 얻어라.
transpose
수신자의 좌표를 교환한 (x는 y가 되고 y는 x가 된다) 좌표를 가진 새 포인트를 응답하라.
truncatedGrid: aPoint
좌표가 음의 무한대로 반올·내림하는 새 포인트를 다수의 그리드로 (Point여야 한다) 응답하라.
Point: 인쇄하기
printOn: aStream
수신자에 대한 표현을 aStream 상에 인쇄하라.
Point: 보관하기
storeOn: aStream
수신자로 컴파일하는 스몰토크 코드를 aStream 상에 인쇄하라.
Point: 버림(truncation)과 반올림하기(round off)
rounded
좌표가 가장 가까운 정수로 반올·내림되는 새 포인트를 응답하라.
truncateTo: grid
좌표가 음의 무한대로 반올·내림되는 새 포인트를 다수의 그리드로 (Number여야 한다) 응답하라.