| 1 | master CL (화면 전체) | SCREEN | # This subtitle will display the number of gridlines,
# the line passes through, borrowing a list from the sketch.
▷ 이 부제목은 스케치에서 배열(List)을 가져와 직선이 지나가는 격자선의 수를 표시한다.
# As long as something is sketched, display the slope.
# Otherwise, give instructions to sketch the line.
▷ 무언가 스케치되어 있기만 하면 기울기를 표시한다. 그렇지 않으면 직선을 그리라는 안내를 보여 준다.
subtitle:
when sketch1.sketch.totalStrokeLength > 0
"Your line passes through ${length(sketch1.numberList("X"))} gridlines."
▶ 화면 제목 아래에 표시할 부제목(subtitle)은 sketch1.sketch.totalStrokeLength가 0보다 크면 "Your line passes through ${length(sketch1.numberList("X"))} gridlines."(직선이 ○개의 격자선을 지난다.)로 한다.
sketch1.numberList("X")는 그래프 배경이 있는 그림판에서 그래프 변수 X에 정해진 숫자배열(numberList)을 가져오고, length(…)는 배열의 길이를 숫자로 알려 준다. sketch는 그림판에 그려진 모든 것을 나타내는 스케치 객체를 가져오고, totalStrokeLength는 스케치를 받아 모든 획의 길이를 합친 숫자를 알려 준다. ${ }는 글자 안에 변수의 값을 끼워 넣는 표기이다.
otherwise "Sketch a line."
▶ 부제목(subtitle)의 나머지 경우는 "Sketch a line."(직선을 그리시오.)으로 한다.
subtitle은 화면 제목 아래 가운데에 부제목을 붙이고, when은 위에서부터 차례로 조건을 확인해 처음 맞는 값을 쓴다.
|
| 2 | sketch1 | 그림판 | # This code sets the initial tool selected to be the line tool.
▷ 이 코드는 처음에 선택되어 있는 도구를 직선 도구로 정한다.
initialTool: sketchTools.line
▶ 그림판의 처음 도구(initialTool)는 직선 도구인 sketchTools.line으로 한다.
initialTool은 처음 선택되어 있는 도구를 정하고, sketchTools는 그림판 도구 모음의 도구들을 담고 있으며 sketchTools.line은 직선 도구이다.
# This code resets the sketch once a second line is drawn.
▷ 이 코드는 두 번째 직선을 그리면 그림판을 재설정한다.
resetOnChange: when mergeSketches(this.sketch,this.currentStroke).strokeCount > 1 "1" otherwise "0"
▶ 그림판의 변경 시 자동 재설정(resetOnChange)은 mergeSketches(this.sketch,this.currentStroke).strokeCount > 1이면 "1", 아니면 "0"으로 한다.
resetOnChange는 글자 값을 받아 그 값이 바뀌면 구성요소를 재설정하고, mergeSketches(…)는 다른 스케치들로 하나의 스케치를 만든다. sketch는 그림판에 그려진 모든 것을 나타내는 스케치 객체를 가져오고, currentStroke는 지금 그리는 중인 획을 나타내는 스케치 객체를 가져오며, strokeCount는 스케치를 받아 획의 수를 숫자로 알려 준다. 지금까지의 스케치와 그리는 중인 획을 합친 획 수가 1보다 커지면 값이 "0"에서 "1"로 바뀌어 그림판이 재설정된다. when은 조건을 차례로 확인해 처음 맞는 값을 쓴다.
# These lines of code collect the y values the sketch passes through
# for the integers between -9 and 9, inclusive.
▷ 이 코드들은 스케치가 -9부터 9까지 정수 위치에서 지나가는 y 값들을 모은다(양 끝 포함).
number("Y_{n9}"): firstDefinedValue(max(this.sketch.yValuesAt(-9)),-15)
▶ 그래프 배경의 변수 Y_{n9}은 스케치가 x = -9에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
yValuesAt(x)는 스케치가 주어진 x 위치에서 지나가는 모든 y 값을 숫자배열로 알려 주고, max(…)는 숫자배열을 받아 가장 큰 값을 숫자로 알려 준다. firstDefinedValue(…)는 같은 종류의 인자를 여러 개 받아 처음으로 정의된(유효한) 값을 알려 준다. number("이름")은 그래프 배경이 있는 그림판에서 그래핑 계산기 안의 변수 값을 정하고, this는 이 구성요소이다. 같은 형태의 줄이 위치만 바꾸어 이어진다.
number("Y_{n8}"): firstDefinedValue(max(this.sketch.yValuesAt(-8)),-15)
▶ 그래프 배경의 변수 Y_{n8}은 스케치가 x = -8에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n7}"): firstDefinedValue(max(this.sketch.yValuesAt(-7)),-15)
▶ 그래프 배경의 변수 Y_{n7}은 스케치가 x = -7에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n6}"): firstDefinedValue(max(this.sketch.yValuesAt(-6)),-15)
▶ 그래프 배경의 변수 Y_{n6}은 스케치가 x = -6에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n5}"): firstDefinedValue(max(this.sketch.yValuesAt(-5)),-15)
▶ 그래프 배경의 변수 Y_{n5}은 스케치가 x = -5에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n4}"): firstDefinedValue(max(this.sketch.yValuesAt(-4)),-15)
▶ 그래프 배경의 변수 Y_{n4}은 스케치가 x = -4에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n3}"): firstDefinedValue(max(this.sketch.yValuesAt(-3)),-15)
▶ 그래프 배경의 변수 Y_{n3}은 스케치가 x = -3에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n2}"): firstDefinedValue(max(this.sketch.yValuesAt(-2)),-15)
▶ 그래프 배경의 변수 Y_{n2}은 스케치가 x = -2에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{n1}"): firstDefinedValue(max(this.sketch.yValuesAt(-1)),-15)
▶ 그래프 배경의 변수 Y_{n1}은 스케치가 x = -1에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_0"): firstDefinedValue(max(this.sketch.yValuesAt( 0)),-15)
▶ 그래프 배경의 변수 Y_0은 스케치가 x = 0에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{9}"): firstDefinedValue(max(this.sketch.yValuesAt( 9)),-15)
▶ 그래프 배경의 변수 Y_{9}은 스케치가 x = 9에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{8}"): firstDefinedValue(max(this.sketch.yValuesAt( 8)),-15)
▶ 그래프 배경의 변수 Y_{8}은 스케치가 x = 8에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{7}"): firstDefinedValue(max(this.sketch.yValuesAt( 7)),-15)
▶ 그래프 배경의 변수 Y_{7}은 스케치가 x = 7에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{6}"): firstDefinedValue(max(this.sketch.yValuesAt( 6)),-15)
▶ 그래프 배경의 변수 Y_{6}은 스케치가 x = 6에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{5}"): firstDefinedValue(max(this.sketch.yValuesAt( 5)),-15)
▶ 그래프 배경의 변수 Y_{5}은 스케치가 x = 5에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{4}"): firstDefinedValue(max(this.sketch.yValuesAt( 4)),-15)
▶ 그래프 배경의 변수 Y_{4}은 스케치가 x = 4에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{3}"): firstDefinedValue(max(this.sketch.yValuesAt( 3)),-15)
▶ 그래프 배경의 변수 Y_{3}은 스케치가 x = 3에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{2}"): firstDefinedValue(max(this.sketch.yValuesAt( 2)),-15)
▶ 그래프 배경의 변수 Y_{2}은 스케치가 x = 2에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
number("Y_{1}"): firstDefinedValue(max(this.sketch.yValuesAt( 1)),-15)
▶ 그래프 배경의 변수 Y_{1}은 스케치가 x = 1에서 지나가는 y 값 가운데 가장 큰 값, 그 값이 정의되지 않으면 -15로 한다.
|