Processing 기초 이해하기_20160713

100 %
0 %
Information about Processing 기초 이해하기_20160713

Published on July 13, 2016

Author: dahlmoon

Source: slideshare.net

1. PROCESSING 이해하기 Moon Yong Joon

2. PROCESSING 설치 Moon Yong Joon

3. Windows 설치

4. 설치 순서 1: 다운로드 다운로드를 받고 압축을 품

5. 설치 순서 2: c 디렉토리 복사 다운로드를 받고 압축을 풀린것을 C 디렉토리에 복사

6. 설치 순서 3:실행 Processing을 생행하면 processing 화면이 실행 됨 로직을 구현 하기 실행버 튼을 누르면 display window가 실행

7. Display window에 출력하기

8. setup() 프로그램 시작 시 설정 함수를 한번 실행하는 setup 함수 프로그램에 대한 하나의 설정 () 함수가 될 수 있 으며 초기 실행 후 다시 호출 할 수 없음 같은 화면 크기의 초기 환경 속성을 정의하고 프 로그램이 시작 등의 이미 지 및 글꼴 등의 미디어 를 로드하는 데 사용.

9. setup() 사용하기 setup 함수는 display window 세팅에 활용

10. Draw 함수 사용 draw함수를 사용해 출력하면 display window 에 출력결과가 나옴 # 변수 정의 타입 변수명 = 초기값; 타입 변수명; 변수명 = 초기값;

11. Console에 출력하기

12. console 창 출력 : println println 함수를 이용해서 출력하면 console 창으 로 출력이 됨

13. console 창 출력 : print 한줄로 console창에 출력

14. console 창 출력 : printArray Array에 대해 console창에 index와 값이 라인 별로 출력

15. 라이브러리 추가 설치

16. 라이브러리 설치 1 스케치 내의 내부 라이러리에서 라이브러리 추가 하기 선택

17. 라이브러리 설치 2 추가할 라이브러리를 검색해고 더블클릭하여 설 치가 됨

18. 모두 추가: 다른 언어 사용 Java이외의 언어로 사용시 Mode 추가 가능

19. 참고 사이트

20. 참고 사이트 http://learningprocessing.com/examples/

21. 참고 사이트 file:///C:/processing- 3.1.1/modes/java/reference/index.html

22. 한번 실행 하기

23. 한번 실행하기 size 함수를 이용해서 실행창 크기를 지정

24. 한번만 실행하기 : noLoop setup함수 내에 noLoop()를 실행하면 draw함 수가 한번만 실행됨

25. 반복 실행하기

26. 반복해서 실행하기 :event 처리 mousePressed함수에 noLoop를 하면 실행창 에 마우스를 누르면 멈추고 release하면 다시 실 행

27. 반복해서 실행하기 : noLoop/loop setup함수 내에 noLoop()를 실행하면 draw함수가 작동하지 않으면 마우스 작동 event가 행해지면 loop 처리

28. 실행 후 종료하기

29. 실행 후 종료하기: exit() exit 함수를 이용해서 실행한 후 특정 이벤트 처 리시 종료처리 결과창에 마우 스를 실행하면 실행창이 닫힘

30. PROCESSING 문법적 특징 Moon Yong Joon

31. Processing 특징

32. 언어의 특징 : 기호 JVM상에서 작동하므로 Java 언어의 특징을 그대 로 사용 문장 끝 { } (brace) 처리, 문장끝에 세 미콜론은 붙이지 않는다. 복합 문장 ; (세미콜론) 처리

33. 언어의 특징 : 함수와 객체 자바 언어와 다른 점은 함수를 기본으로 제공 함수 Class 정의 후 new를 이용해 서 객체를 생성해서 사용 객체 기본 내장 함수들을 제공하며 함수를 정의 후에 사용 가능

34. 언어의 특징 : 재귀 loop 함수형 언어처럼 재귀호출로 실행하므로 loop를 조정할 수 있도록 설정됨 Draw 함수 noLoop, loop로 순환 제어 기능 구현 가능 Loop 제어 Draw 함수가 지정되면 기본 재귀호출로 순환 처리

35. 변수 정의 및 초기화

36. 변수 정의 및 초기화 변수를 정의하고 사용하려면 정의하고 초기화처 리가 필요 # 변수 정의 타입 변수명 = 초기값; 타입 변수명; 변수명 = 초기값;

37. 함수정의

38. 함수 정의 및 호출 함수나 메소드 정의 후에 호출해서 처리 # 함수 정의 Return Data Type 함수명(파라미터) { Return 결과값 } # 함수 호출 함수명(인자);

39. 클래스 정의

40. 클래스 정의 클래스는 속성, 생성자, 메소드를 정의 함 class ClassName { 속성들; 생성자; 메소드; } class HLine { float ypos, speed; HLine (float y, float s) { ypos = y; speed = s; } void update() { ypos += speed; if (ypos > height) { ypos = 0; } line(0, ypos, width, ypos); } }

41. 클래스 생성자 클래스를 객체로 만들어서 활용 변수 타입 변수명 = new 생성자 (파라미터) // Declare and construct two objects (h1, h2) // from the class HLine HLine h1 = new HLine(20, 2.0); HLine h2 = new HLine(50, 2.5);

42. 클래스 속성 사용하기 클래스를 객체로 만들고 객체의 속성과 메소드를 호 출해서 활용 객체명.속성 객체명.메소드 // Declare and construct two objects (h1, h2) // from the class HLine HLine h1 = new HLine(20, 2.0); HLine h2 = new HLine(50, 2.5); void setup() { size(200, 200); frameRate(30); } void draw() { background(204); h1.update(); h2.update(); }

43. PROCESSING 문법 : 기호, 키워드, 연산자 Moon Yong Joon

44. 주요 기호

45. ( ) : 표현식, 함수 파라미터 표현식 묶거나 함수 파라미터 처리에 사용

46. , : 변수선언, array, 함수 파라미터 변수 선언이나 array 또는 함수 파라미터

47. . : 객체 속성 호출 객체 속성 호출 Class 정의 객체 호출 객체 생성

48. 주석 line/mulitline과 doc 주석을 구분해서 사용

49. ; : 문장의 끝 표현 모든 문장의 끝을 ;(semi-colon)으로 표시해야 함

50. = : 할당 문장에서 할당연산자로 사용

51. [ ] : array 정의 및 접근 array 정의 및 접근을 위해 사용

52. { }: array 할당 및 복합문 정의 array 할당 및 함수, 클래스 등 복합문을 만들 때 사용

53. Keyword

54. true/false boolean 타입의 값으로 키워드로 지정해서 사용

55. void : return 값이 없음 함수 실행시 실제 결과값이 없을 경우 사용되는 키워드

56. private/public 클래스 내의 속성과 메소드에 대한 접근을 정의 할 때 사용

57. final 값, 클래스 또는 메소드가 변경 될 수 없는 상태로 사용하는 키 워드 final 변수는 프로그램 내에서 변경되지 않는 상수로 사용 final 클래스는 하위 클래스로 사용할 수 없고, 함수나 메소드를 정의에 사용하면 서브 클래스에 의해 오버라이 드 (override) 할 수 없음

58. return : 함수나 메소드 결과값 값내부의 함수나 메소드에 대한 결고값을 처리. Return을 사용시 void 대신 결과값을 함수명 앞 에 정의해야 함

59. import : 라이브러리 모듈 processing 내부의 video 라이브러리를 로딩

60. class : 클래스 정의 클래스의 선언을 나타내기 위해 사용 클래스 이름의 첫 글자는 일반적으로 다른 종류의 변수와 구분하기 위해 대문자 클래스 정의

61. static : 클래스/클래스 멤버 클래스가 객체 정의없이 사용이 가능하도록 사용 하는 키워드 클래스 정의

62. extends : 클래스의 상속 클래스를 상속할 경우 상속되는 클래스를 위해 정의

63. implements: 인터페이스 구현 interface에 대한 클래스 내부에 정의시 사용

64. new: 새로운 객체 생성 하기 새로운 객체를 생성하려면 new와 생성자를 같이 사용함 새로운 객체 를 생성

65. this: 현재 객체 참조 this 는 video 모듈이 객체를 참조생성

66. super: 부모 객체 참조 class 상속일 경우 부모 클래스 참조

67. try/catch: 오류처리 오류, 예외 처리를 위해 작성하는 키워드

68. 연산자

69. 산술연사자 두 개의 표현식을 산술한 결과를 표현 % Module * multiply *= multiply assign + addition ++ increment >= greater than or equal to += add assign - minus -- decrement -= subtract assign / divide /= divide assign

70. 관계연사자 두 개의 표현식을 비교 != inequality < less than <= less than or equal to == equality > greater than >= greater than or equal to

71. 논리연사자 두 개의 표현식을 논리적으로 판단 ! logical NOT && logical AND || logical OR

72. 비트연사자 두 개의 표현식을 바이너리 연산 & bitwise AND << left shift >> right shift | bitwise OR

73. 제어문

74. ? 문 조건식을 판단해서 참과 거짓을 판단해서 실행하 는 문 test ? expression1 : expression2 int s = 0; for (int i = 5; i < 100; i += 5) { s = (i < 50) ? 0 : 255; stroke(s); line(30, i, 80, i); }

75. if 문(단일) 조건식을 판단해서 참일 경우만 처리 if (test) { statements } for (int i = 5; i < height; i += 5) { stroke(255); // Set the color to white if (i < 35) { // When 'i' is less than 35... stroke(0); //...set the color to black } line(30, i, 80, i); }

76. else 문(복합조건) 조건식을 판단하고 거짓이면 else문을 다시 판단 하면 처리 if (expression) { statements } else if (expression) { statements } else { statements } for (int i = 5; i < 95; i += 5) { if (i < 35) { line(30, i, 80, i); } else if (i < 65) { line(20, i, 90, i); } else { line(0, i, 100, i); } }

77. switch 문(복합조건) 조건식을 판단해서 조건이 맞는 case를 처리되나 없을 경우는 default에 정의된 것을 처리 switch(expression) { case label: statements case label: // Optional statements default: statements } char letter = 'N'; switch(letter) { case 'A': println("Alpha"); // Does not execute break; case 'B': println("Bravo"); // Does not execute break; default: // Default executes if the case labels println("None"); // don't match the switch parameter break; }

78. break, continue 문 순환문 및 제어문에서 로직을 중단할 것인지 계 속할 것인지에 따라 break/continue문을 이용 for (int i = 0; i < 100; i += 10) { if (i == 70) { // If 'i' is 70, continue; // skip to the next iteration, } // therefore not drawing the line. line(i, 0, i, height); }

79. 순환문

80. for 문 조건식에 따라 순환하는 것과 array를 순환하는 2가지 for (init; test; update) { statements } for (datatype element : array) { statements } for (int i = 0; i < 40; i = i+1) { line(30, i, 80, i); } int[] nums = { 5, 4, 3, 2, 1 }; for (int i : nums) { println(i); }

81. while 문 조건식에 따라 순환 while (expression) { statements } int i = 0; while (i < 80) { line(30, i, 80, i); i = i + 5; }

82. PROCESSING 문법 : 데이터 타입 Moon Yong Joon

83. 기본 데이터 타입

84. null 데이터 타입이 없음. 특히 array 선언하고 할당 을 안 할 경우 null 값을 갖음

85. boolean boolean은 true와 false로 구성된 데이터 타입

86. byte 127에서 -128에 숫자 값을 저장하는 정보의 8 비트 값을 처리하기 위한 타입

87. character 각 문자의 길이는 두 바이트 (16 비트)이며 작은 따옴표로 주변에 의해 구별된다. 문자 이스케이 프는 또한 문자로 저장

88. color 색상 값을 저장하기 위한 데이터 유형. 색상은 GET ()와 color() 또는 # FFCC00 또는 0xFFFFCCOO으로 16 진법을 사용하여 직접 지정 가능 색상값으로 할당 가능

89. float 부동 소수점 숫자 3.40282347E + 38만큼 크고 -3.40282347E + 38 정도로 낮을 수있다. 그들 은 정보는 32 비트 (4 바이트)로 저장하는 데이터 타입

90. double float에 저장 될 수있는 것보다 64 비트 값을 저 장하는 데이터 타입

91. int 소수점이없는 숫자 정수이며 2,147,483,647만 큼 크고 -2,147,483,648 작은 값을 32 비트의 정보로 저장하는 데이터 타입

92. long 9,223,372,036,854,775,808 최소 값 (64 비트 저장) 9,223,372,036,854,775,807의 최대 값 을 갖는 데이터 타입

93. 타입변환 내장함수

94. binary() 데이터 타입을 바이너리 타입으로 변경, 함수호 출시 기준을 주면(16진수, 8진수로 변환이 가능)

95. boolean() 문자열 객체를 받아서 boolean 타입으로 변환

96. byte() boolean, byte, char, color, double, float, int, ,long 가능하며 -128 and 127이 값으로 변환

97. char() boolean, byte, char, color, double, float, int, ,long 가능하며 대신 문자 표현이어야 함

98. float() 문자열(숫자값), 숫자에 대한 값 변환

99. hex() hex값으로 전환가능하고 두번째 인자에 숫자표 현 자리수 값을 넣을 수 있음 6자리 출력 표시

100. int() 문자열(숫자값), 숫자에 대한 값 변환

101. str() 숫자, boolean, 문자에 대해 문자열로 변환

102. unbinary() 숫자(바이너리), 문자열(바이너리)로 표시할 경우 이를 숫자 변환

103. unhex() 문자열(바이너리)로 표시할 경우 이를 숫자 변환

104. PROCESSING 문법:STRING Moon Yong Joon

105. String

106. String : 생성자 문자열 생성자는 byte나 char array를 파라미터 로 받아 문자열로 생성 String 변수명 = “ 문자열” 로 직접 생성도 가능

107. String 생성 예시 Char array를 정의하고 String 생성자에 파라미터로 전달

108. String : 메소드 제공된 내장 메소드

109. String 처리 함수

110. join join(list, separator)은 String[]: array of Strings을 list 인자로 받아서 문자열을 합

111. match match(str, regexp) 함수는 문자열을 정규표현 식과 비교해서 매치되는 곳이 문자열 결과를 처 리 <tag></tag> 사이이 content 문자열을 추출

112. matchAll match(str, regexp) 함수는 문자열을 정규표현 식과 비교해서 매치된 결과를 String[][]으로 처리 String[i][0] = 매칭된 전체 문자열 String[i][1] = 매칭된 내부 결과 문자열

113. nf 숫자를 문자열로 format 처리하는 함수 nf(num) nf(num, digits) nf(num, left, right) num : int[], float[], float, or int digits : 0를 포함한 숫자의 길이 left: 소수점 이상 수 right:소수점이하 수

114. nfc 숫자를 문자열로 format 처리하는 함수 특히 1000 단위로 ,를 붙임 nf(num) nfc(num, right) num : int[], float[], float, or int right:소수점이하 수

115. nfp 숫자를 문자열로 format 처리하는 함수. 부호를 표시 nfp(num, digits) nfp(num, left, right) num : int[], float[], float, or int digits : 0를 포함한 숫자의 길이 left: 소수점 이상 수 right:소수점이하 수

116. nfs 숫자를 문자열로 format 처리하는 함수. 양수일 경우 는 부호가 blank이고 음수일 경우 표시 nfp(num, digits) nfp(num, left, right) num : int[], float[], float, or int digits : 0를 포함한 숫자의 길이 left: 소수점 이상 수 right:소수점이하 수

117. split 문자열로 쪼개서 문자열 array로 분리 하는 함수 split(value, delim) value : string delim : char

118. splitTokes 문자열로 token들로 문자열 array로 분리 하는 함수 splitTokens(value) splitTokens(value, delim) value : string delim : char “, “: ,와 blank를 제거하라 는 뜻

119. trim 문자열내의 좌우 공백을 제거하는 함수 trim(str) trim(array) str : string array : string array

120. PROCESSING 문법: ARRAY Moon Yong Joon

121. Array

122. array 생성/초기값 할당 array는 데이터타입[] 변수명으로 생성하고 할당 연산자을 이용해서 값을 할당 int[] a = {1,2,3,4} 으로 정의 및 초기화를 같이 할 수 있음

123. Array 처리 함수

124. append array에 원소를 추가하기 append(array, value) array : Object, String[], float[], int[], char[], or byte[] value : Object, String, float, int, char, or byte

125. arrayCopy array에서 array로 원소를 카피하는 함수 arrayCopy(src, srcPosition, dst, dstPosition, length) arrayCopy(src, dst, length) arrayCopy(src, dst) src, dst : array srcPosition, dstPosition : array 위치 length : 총 copy 할 길이

126. concat array와 array를 하나의 array로 합하는 함수 concat(a, b) a, b : Object, String[], float[], int[], char[], byte[], or boolean[]

127. expand 기존 array의 사이즈를 확장하는 함수 expand(list, newsize) list : Object, String[], double[], float[], long[], int[], char[], byte[], or boolean[] Newsize : 정수로 사이즈 지정 데이터 타입을 지정시 확장도 지 정된 데이터 사이즈 만큼 처리

128. reverse 기존 array를 역으로 sort 하는 함수 reverse(list) list Object, String[], float[], int[], char[], byte[], or boolean[]: booleans[], bytes[], chars[], ints[], floats[], or Strings[]

129. shorten 기존 array를 앞에서 한 원소씩 삭제하는 함수 shorten(list) list : Object, String[], float[], int[], char[], byte[], or boolean[]

130. sort 기존 array를 sort 하는 함수 sort(list) Sort(list, count) list : String[], float[], int[], char[], or byte[] count : number of elements to sort, starting from 0

131. splice 기존 array를 index 위치부터 insert 하는 함수 splice(list,value,index) list : Object, String[], float[], int[], char[], byte[], or boolean[] value : Object, String[], String, float[], float, int[], int, char[], char, byte[], byte, boolean[], or boolean

132. subset 기존 array를 시작점 부터 부분 array를 추출하는 함 수 subset(list,start) subset(list,start,count) list : Object, String[], float[], int[], char[], byte[], or boolean[]

133. PROCESSING 문법: MATH 함수 Moon Yong Joon

134. math 함수 1 수학 함수들 abs(n) 절대값 ceil(n) Int 값에 가까운 곳으로 절상 constrain(amt, low, high) low와 high의 값 사이로 제한, low보다 작으면 low, high보다 크면 high dist(x1, y1, x2, y2) dist(x1, y1, z1, x2, y2, z2) 거리구하기 exp(n) Returns Euler's number e (2.71828...) raised to the power of the n parameter floor(n) 값을 절사(int) lerp(start, stop, amt) 선형보간(Linear Interpolation). start에서 stop 사이 를 amt로 선형보간 log(n) 로그값 산출 mag(a, b) mag(a, b, c) 벡터에 대한 크기(길이) 계산 map(value, start1, stop1, start2, stop2) Start1과 stop1 범위의 값을 확인하고 start2와 stop2 의 값으로 리턴

135. math 함수 2 수학 함수들 max(a, b) max(a, b, c) max(list) 최대값 구하기 min(a, b) min(a, b, c) min(list) 최소값 구하기 norm(value, start, stop) Normalizes a number from another range into a valu e between 0 and 1. pow(n, e) e 승만큼 구하기 round(n) 숫자를 증가하거나 버리기 sq(n) 제곱승 sqrt(n) 제곱근 구하기

136. lerp함수 선형보간(Linear Interpolation). start에서 stop 사이를 amt로 선형보간

137. map함수 map(value, start1, stop1, start2, stop2)를 이용 하면 두 값이 target 범위에 맞춰 이동

138. PROCESSING 문법:SETTING 함수 Moon Yong Joon

139. 색깔 입히기

140. 흑백색깔에 대한 숫자표시 색상은 0부터 255까지 숫자로 표시하면 0이 가 장 짙고 숫자가 높아질수록 엷어짐

141. 흑백 색상 선택하기 fill 함수에 하나의 숫자 파라미터를 넣으면 흑백 색상이 선택됨

142. 칼라색에 대한 숫자표시 색상은 R,G,B에 대해 0부터 255까지 숫자로 표 시하면 혼합된 색을 표시

143. 도형에 색깔입히기: fill() fill 함수를 이용해서 흑백이나 칼라색을 입히기

144. RGB 색상 선택하기 도구에 색상선택하기를 누르고 실제 R, G, B를 확인해서 입력하면 색상을 선택할 수 있음 실행된 결과

145. RGB color 색 입히기 : 1 fill 함수에서 R,G,B를 선택 red + green = yellow

146. RGB color 색 입히기 : 2 fill 를 이용해서 RGB 색 입히기 255가 기본이고 점점 작은 수일 수록 짙은 색

147. 모형에 색 입히기 배경(background), 모형 외곽선(stroke), 모형 내부(fill)의 색을 함수를 이용함 background() stroke() fill()

148. 배경 및 윤곽선 입히기

149. 배경색/배경이미지: background 배경(background)에 파라미터를 넣고 배경색이 나 배경이미지를 처리할 수 있음

150. 도형 윤곽선 : stroke() storke 함수를 이용해서 흑백이나 칼라색로 윤 곽석을 표시

151. PROCESSING 문법: 2D 도형 함수 Moon Yong Joon

152. 점과 선

153. 점과 선 이해 라인, 점 등을 그릴 때 각 픽셀의 위치에 따라 그 림

154. 점과 선그리기 라인(line), 점(point) 등을 그릴 수 있음 시작점은 앞의 두자리 끝점은 뒤에 두자리

155. 사각형

156. 사각형 이해 사각형, 타원, 라인, 점 등을 그릴 수 있음

157. 사각형 그리기 size는 실행 창 크기, background는 실행결과 창이 배경색, fill은 실행결과 내의 색입히기, rect 은 사각형 그리기

158. 원

159. 원 이해 사각형, 타원, 라인, 점 등을 그릴 수 있음

160. 원 그리기 size는 실행 창 크기, background는 실행결과 창이 배경색, nofill은 실행결과 내에 채우기 없기, ellipse은 원 그리기

161. 삼각형

162. 삼각형 그리기 세개 좌표를 받아서 표시 triangle(x1, y1, x2, y2, x3, y3)

163. 마름모꼴(quad)

164. 마름모꼴 그리기 네개 좌표를 받아서 표시 quad(x1, y1, x2, y2, x3, y3, x4, y4)

165. 호(arc)

166. 호 그리기 두개의 좌표와 호의 폭과 높이를 받아서 호를 표 시 arc(a, b, c, d, start, stop) arc(a, b, c, d, start, stop, mode)

Add a comment