본문 바로가기

프로세싱14

[프로세싱(Processing)] 벽돌 깨기 게임 벽돌 깨기 게임 옛날 오락실에서 많이 했던 추억의 게임 벽돌 깨기. 프로세싱으로 처음 개발한 게임. 기능상 완벽하지는 않지만, 재미난 경험. 1. 게임 기획 프로세싱(Processing)으로 벽돌깨기 게임을 만들기 위해, 다음 내용으로 기획하였다. 1) 게임 화면 설정 2) 패들(Paddle) 및 공(Ball) 객체 생성 3) 벽돌(Brick) 객체 생성 4) 공 움직임 처리 5) 패들 움직임 처리 6) 벽돌 충돌 감지 7) 점수 및 게임 종료 처리 2. 설계 및 구현 1) 게임 화면 설정 setup() 및 draw() 함수를 사용하여 게임 창을 설정. 창 사이즈는 800 * 600으로 설정함. 배경색은 검정색으로 설정함. void setup() { size(800, 600); } void draw() .. 2023. 5. 3.
[프로세싱(Processing) : 고급] 알고리즘과 최적화 1. 알고리즘과 최적화 1.1 복잡도 이론 복잡도 이론은 알고리즘의 효율성을 분석하는 이론입니다. 알고리즘의 시간 복잡도는 입력 크기에 대한 알고리즘의 실행 시간을, 공간 복잡도는 메모리 사용량을 의미합니다. 대표적으로 빅오(O) 표기법을 사용해 복잡도를 표현합니다. 1.2 정렬 및 검색 알고리즘 정렬 알고리즘은 데이터를 특정 순서로 정렬하는 알고리즘입니다. 대표적으로 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬 등이 있습니다. 검색 알고리즘은 원하는 데이터를 찾는 알고리즘으로 선형 검색, 이진 검색 등이 있습니다. 1.3 그래프 이론과 경로 찾기 그래프 이론은 정점(Vertex)과 간선(Edge)으로 이루어진 그래프를 다루는 이론입니다. 경로 찾기 알고리즘은 그래프에서 한 정점에서 다른 .. 2023. 5. 1.
[프로세싱(Processing) : 고급] 프로세싱 고급기술에 대하여. 프로세싱 고급기술에 대하여 지금부터는 프로세싱 고급기술 부분으로 프로세싱의 전문적인 기술과 알고리즘, 그리고 다양한 분야의 응용을 익힐 수 있습니다. 이를 통해 창의적인 프로젝트와 혁신적인 솔루션을 개발하는 데 필요한 지식과 기술을 습득하게 됩니다. 목차는 다음과 같습니다. 1. 알고리즘과 최적화 1.1. 복잡도 이론 1.2. 정렬 및 검색 알고리즘 1.3. 그래프 이론과 경로 찾기 1.4. 프로세싱에서의 성능 최적화 2. 컴퓨터 비전 2.1. 영상 처리 기초 2.2. 특징 검출 및 추적 2.3. 객체 인식 및 분류 2.4. 영상 합성 및 변환 3. GPGPU 프로그래밍 3.1. GPU 기반 병렬 컴퓨팅 개요 3.2. 셰이더 프로그래밍 기초 3.3. 프로세싱에서 GPGPU 활용 3.4. GPGPU를 이용.. 2023. 5. 1.
[프로세싱(Processing) : 중급] 외부 라이브러리 활용과 확장 7. 외부 라이브러리 활용과 확장 프로세싱은 다양한 외부 라이브러리를 통해 높은 수준의 기능을 쉽게 구현할 수 있습니다. 이번 섹션에서는 머신러닝, AR/VR, 물리 시뮬레이션 등의 라이브러리를 활용하는 방법과 직접 커스텀 라이브러리를 개발 및 배포하는 방법에 대해 살펴봅니다. 7.1. 머신러닝 라이브러리 ml5.js는 p5.js와 호환되는 머신러닝 라이브러리로, 이미지 인식, 자연어 처리, 스타일 전이 등 다양한 머신러닝 기능을 쉽게 사용할 수 있습니다. // ml5.js 사용 import ml5.*; // 이미지 분류 객체 생성 ImageClassifier classifier; void setup() { classifier = new ImageClassifier("MobileNet", () -> { .. 2023. 5. 1.
[프로세싱(Processing) : 중급] 데이터 시각화와 인터랙티브 디자인 6. 데이터 시각화와 인터랙티브 디자인 6.1. 데이터 로드 및 가공 프로세싱에서 데이터를 로드하고 가공하는 방법을 학습합니다. CSV, JSON, XML 등 다양한 형식의 데이터를 불러오고 처리할 수 있습니다. loadTable, loadJSON, loadXML 등의 함수를 사용하여 데이터를 로드하고, 반복문과 조건문을 활용해 필요한 데이터를 추출 및 변환합니다. Table data; void setup() { data = loadTable("data.csv", "header"); for (TableRow row : data.rows()) { int id = row.getInt("id"); float value = row.getFloat("value"); println("ID: " + id + ", V.. 2023. 5. 1.
[프로세싱(Processing) : 중급] 입출력과 통신 5. 입출력과 통신 5.1. 파일 입출력 및 데이터 저장 프로세싱에서는 다양한 형식의 파일을 읽고 쓸 수 있습니다. 예를 들어, 텍스트 파일을 읽고 쓰는 방법은 다음과 같습니다. // 텍스트 파일 읽기 String[] lines = loadStrings("data.txt"); for (String line : lines) { println(line); } // 텍스트 파일 쓰기 String[] linesToWrite = {"Hello", "World"}; saveStrings("output.txt", linesToWrite); 이 외에도 프로세싱에서는 JSON, CSV, XML 등의 데이터 형식을 지원하며, 해당 데이터를 읽고 쓸 수 있는 함수를 제공합니다. 5.2. 웹캠 및 마이크 입력 프로세싱에서는 .. 2023. 5. 1.