
소장정보
위치 | 등록번호 | 청구기호 / 출력 | 상태 | 반납예정일 |
---|---|---|---|---|
이용 가능 (1) | ||||
연구외도서 | G100878 | 대출가능 | - |
- 등록번호
- G100878
- 상태/반납예정일
- 대출가능
- -
- 위치/청구기호(출력)
- 연구외도서
책 소개
[이 책의 특징과 장점]
- 개념 소개: 벡터, 힘, 진동, 프랙털 등 실생활에서 벌어지는 자연 현상을 분석해서 정리하는 과정을 다룬다.
- 코드 구현: 설명한 개념을 실제 코드로 구현해본다. 그리고 어떤 응용 효과가 나오는지를 주석 형태로 설명해준다.
- 결과 확인: 구현된 코드의 결과를 보여준다. 이 책 홈페이지에서는 실제 실행 결과를 눈으로 확인할 수 있다.
- 연습문제 풀이: 지금까지 배운 개념의 응용 성격인 연습문제를 제시한다.
[ 어떤 독자를 위한 책인가?]
- 실생활에 필요한 창작물을 만드는 미디어 아티스트
- 실무에 막 뛰어든 초/중급 게임 프로그래머
- 아두이노 스케치 구성이 약하다고 생각하는 메이커
[도서 특징]
자연계의 법칙을 소스 코드로 풀어내는 데 필요한 개념을 이해하자
로봇의 동작, 게임 캐릭터의 움직임은 대부분 우리가 배웠던 자연계 법칙을 토대로 구현한 것이다. 그런데 이를 배울 때는 보통 딱딱한 법칙을 암기한 후 무미건조한 코드를 작성하고 실행 결과를 반복해서 살펴보게 되는 편이다. 그래서 알고리즘 구성과 코딩을 자연스럽게 이해하면서 프로그래밍을 배우려는 욕구가 많다.
이 책은 벡터, 진동, 물리 라이브러리, 프랙털, 신경망 등 자연계 법칙을 재밌고 쉽게 구현하면서 프로그래밍을 이해할 수 있도록 구성되어 있다. 이를 위해 비전공자도 비교적 가볍게 접근할 수 있고, 실행 결과를 바로바로 확인할 수 있는 프로그래밍 언어인 프로세싱(Processing)을 사용한다. 실력 있는 프로그래머라면 코딩 실력도 훌륭하지만 위에서 설명한 자연계 법칙의 기본이 되는 물리나 수학 지식에도 강하다. 그리고 실생활의 여러 가지 현상을 코딩해보려는 습관을 지닌다. 이러한 습관이 몸에 익으면서 실력 있는 프로그래머로 성장하는 것이다. 이 책은 이러한 관점에서 프로그래머로 성장할 수 있는 기초를 다지게 한다.
Tech DIY를 추구하는 메이커나 미디어 아티스트 등의 프로그래밍 비전공자, 자연계 법칙을 기초로 시뮬레이션을 구성하려는 응용과학 연구원, 기초 수학이나 물리에 약한 게임 프로그래머에게 많은 도움이 될 것이다.
목차
CHAPTER 0 소개
__0.1 Random Walks
__0.2 Walker 클래스
__0.3 확률과 비균등 분포
__0.4 임의 숫자의 정규 분포
__0.5 임의 숫자의 사용자 정의 분포
__0.6 펄린 노이즈
__0.7 이어지는 내용
CHAPTER 1 벡터
__1.1 벡터 기본
__1.2 프로세싱 프로그래밍과 벡터
__1.3 벡터 덧셈
__1.4 벡터와 관련된 수학
__1.5 벡터 크기
__1.6 벡터 정규화
__1.7 속도와 벡터를 활용한 이동
__1.8 가속도와 벡터를 사용한 이동
__1.9 static 함수
__1.10 가속도와 상호작용
CHAPTER 2 힘
__2.1 힘과 뉴턴의 운동 법칙
__2.2 힘과 프로세싱: 뉴턴의 운동 2법칙
__2.3 힘 축적
__2.4 질량
__2.5 힘 생성
__2.6 중력 모방
__2.7 마찰력
__2.8 공기 저항과 유체 저항
__2.9 중력 끌림
__2.10 모든 객체의 만유인력
CHAPTER 3 진동
__3.1 각도
__3.2 회전 운동
__3.3 삼각법
__3.4 이동 방향의 목적지
__3.5 극 좌표계와 직교 좌표계
__3.6 진동의 진폭과 주기
__3.7 각속도와 진동
__3.8 파동
__3.9 삼각법과 힘: 진자
__3.10 용수철 힘
CHAPTER 4 파티클 시스템
__4.1 파티클 시스템을 사용하는 이유
__4.2 입자 하나
__4.3 ArrayList 클래스
__4.4 ParticleSystem 클래스
__4.5 여러 개의 파티클 시스템
__4.6 상속과 다형성 소개
__4.7 상속 기본
__4.8 상속을 활용한 입자
__4.9 다형성 기본
__4.10 다형성을 사용한 파티클 시스템
__4.11 힘을 활용하는 파티클 시스템
__4.12 서로 밀어내는 파티클 시스템
__4.13 이미지 텍스처와 가산 합성
CHAPTER 5 물리 엔진 라이브러리
__5.1 Box2D 물리 엔진의 의미와 유용하게 사용하는 법
__5.2 프로세싱 전용 Box2D 설치
__5.3 Box2D 기본
__5.4 Box2D 월드 생성
__5.5 Box2D 보디 생성
__5.6 보디, 셰이프, 픽스처
__5.7 Box2D와 프로세싱
__5.8 직선 경계와 고정 객체
__5.9 곡선 경계
__5.10 복잡한 모양
__5.11 Box2D Joint 객체
__5.12 힘의 필요성
__5.13 충돌 이벤트
__5.14 잠시 휴식 - 적분법
__5.15 toxiclib의 VerletPhysics
__5.16 toxiclibs의 파티클과 스프링
__5.17 정리: 반응하는 실
__5.18 연결 1: 실
__5.19 연결 2: 힘 지향 그래프
__5.20 끌어당김과 밀어냄
CHAPTER 6 자율 에이전트
__6.1 내부로부터의 힘
__6.2 차량과 조향
__6.3 조향력
__6.4 도착 행동
__6.5 원하는 속도
__6.6 흐름장 추적
__6.7 내적
__6.8 경로 추적
__6.9 여러 개의 선분이 있는 경로 추적
__6.10 복잡계
__6.11 군집 활동
__6.12 행동 합성
__6.13 군집
__6.14 알고리즘의 효율성
__6.15 추가적인 최적화 방법
CHAPTER 7 세포 오토마타
__7.1 세포 오토마톤이란?
__7.2 기본적인 세포 오토마타
__7.3 기본적인 울프램 CA 프로그래밍
__7.4 기본적인 CA 그리기
__7.5 울프램 분류
__7.6 생명 게임
__7.7 생명 게임 프로그래밍
__7.8 객체 지향 세포
__7.9 고전적 CA의 변형 형태
CHAPTER 8 프랙털
__8.1 프랙털이란?
__8.2 재귀
__8.3 재귀 함수를 사용한 칸토어 집합
__8.4 코크 곡선과 ArrayList를 활용한 기술
__8.5 나뭇가지
__8.6 L 시스템
CHAPTER 9 진화
__9.1 유전 알고리즘: 실제 자연에서의 진화
__9.2 유전 알고리즘을 사용하는 이유
__9.3 다윈의 자연 선택
__9.4 유전 알고리즘의 첫 번째 요소: 집단 생성
__9.5 유전 알고리즘의 두 번째 요소: 선택
__9.6 유전 알고리즘의 세 번째 요소: 생식
__9.7 집단을 생성하는 코드
__9.8 유전 알고리즘: 정리
__9.9 유전 알고리즘: 적용
__9.10 진화하는 힘: 스마트 로켓
__9.11 스마트 로켓: 정리
__9.12 대화형 선택
__9.13 생태계 시뮬레이션
CHAPTER 10 뉴럴 네트워크
__10.1 인공 뉴럴 네트워크: 간단한 소개와 적용 사례
__10.2 퍼셉트론
__10.3 퍼셉트론을 사용한 간단한 패턴 인식
__10.4 퍼셉트론 구현
__10.5 운전하는 퍼셉트론
__10.6 네트워크의 의미
__10.7 뉴럴 네트워크 그림
__10.8 피드포워드 애니메이션
__맺는 말
부록 A 프로세싱 기초
__A.1 설치
__A.2 실행
__A.3 프로세싱 기본
__A.4 추가 내용
부록 B 참고문헌
__B.1 서적
__B.2 참고 문서와 기사