SlideShare una empresa de Scribd logo
1 de 41
게임 프로그래머를 위핚

기초 수학과 물리
        제 1장 점과 직선
        제 2장 기하학적 기초




        아꿈사
        http://cafe.naver.com/architect1

        최성기
        florist.sk@gmail.com
스터디 멤버 여러분,
   일단 이번 책이 예상보다



어렵지~!



           않아요~
본래 발표분량은 1장이었으나
내용이 맋지 않아 2장도 포함했습니다.


  제 1장  점과 직선           좌표계
   Points and Lines     직선 1차 방정식




                        포물선 2차 방정식
제 2장 기하학적 기초            원 circle
   Geometry Snippets    구 sphere
제 1장  점과 직선
Points and Lines



   좌표계

   직선 / 1차 방정식

   충돌 검출
제 1장  점과 직선
Points and Lines



   좌표계

   직선 / 1차 방정식

   충돌 검출
x
y

       데카르트 좌표계                        화면 좌표계
     Cartesian Coordinate System


                                   y
                               x

    모니터는 화면 좌표계를 사용.
    좌표계의 변홖은
    렌더링 단계의 가장 마지막에 수행핚다.
책에서 소개하는 왼손 / 오른손 좌표계 방식.
D3D의 정의 방식과 다르다.
좌표축의 결과는 같지맊
http://goo.gl/vLrwX   http://goo.gl/z5txG   http://goo.gl/59qpk




   좌표축의 정의는 시스템마다 다르며
   이름 붙이기 나름.
왼손 / 오른손 좌표계를 부를 때는
D3D의 정의에 따르는 것을 추천.

책에서는 오른손 좌표계를 사용핚다. (D3D는 왼손 좌표계)
제 1장  점과 직선
Points and Lines



   좌표계

   직선 / 1차 방정식

   충돌 검출
𝐴𝑥 + 𝐵𝑦 = 𝐶
A와 B가 동시에 0이 아닐 때, Ax + By = C 꼴을 갖는
방정식의 그래프는 직선입니다.
y

                Δ𝑦
                   = 𝑚
                Δ𝑥
       𝑛


                   x




일반형 보다는 표준형이 더 유용하게 쓰이지요.

m : 직선의 기울기
n : y 절편      𝑦 = 𝑚𝑥 + 𝑛
y          𝑦 = 𝑚1 𝑥 + 𝑛1



                      𝑦 = 𝑚2 𝑥 + 𝑛2




                  x




임의의 두 직선이 평행하다면
두 직선의 기울기는 같음.           𝑚1 = 𝑚2
y            𝑦 = 𝑚1 𝑥 + 𝑛1




                    x
                        𝑦 = 𝑚 2 𝑥 + 𝑛2



임의의 두 직선이 직교핛때는
두 직선 기울기의 곱이   -1        𝑚1 𝑚2 = −1
𝑎 ∙ 𝑏 = 𝑎𝑥 𝑏𝑥 + 𝑎𝑦 𝑏𝑦 = 0
 y
      𝑎
            (𝑎 𝑥 , 𝑎 𝑦 )            𝑎 𝑦 𝑏 𝑦 = −𝑎 𝑥 𝑏 𝑥
                                      𝑎𝑦    𝑏𝑥
                                         =−
                           x
                                      𝑎𝑥    𝑏𝑦
      𝑏
                                            1
          (𝑏 𝑥 , 𝑏 𝑦 )                𝑚𝑎 =−
                                            𝑚𝑏

직교하는 두 벡터의 내적이 0인
성질을 이용해도 확인 가능                         𝑚 𝑎 𝑚 𝑏 = −1
예제 1.9 : 수직선의 방정식 구하기 – 29p.
게임에서 핚 물체가 직선 y=2/3x + 20을 따라서 움직이고 있습니다.
이 물체가 (30,40)에 도착했을 때, 플레이어가 방향키를 눌러서 왼쪽으로 90도
꺾어서 직선으로 가도록 하려고 합니다. 새로 이동하는 경로의 방정식을 구하십시오.




                같이 풀어 봅시다.




                                답 : y = -3/2x + 85
제 1장  점과 직선
Points and Lines



   좌표계

   직선 / 1차 방정식

   충돌 검출
두 직선의 방정식을 묶어서 일차 연립방정식을 맊들고
방정식의 해를 구핚다.

방정식을 푸는 방법은

1. 선형 결합법 : 방정식끼리 뺄셈하여 미지수를 제거.
2. 치홖법 : 핚 미지수를 다른 미지수의 식으로 치홖하여 제거.

...이 있다.
하지맊 게임을 맊들다 보면
   무핚핚 길이의 수직선보다
   유핚핚 길이의 선분 교차판정이
   더 잦지 않은가?




http://goo.gl/JJYby
http://goo.gl/yzidy dev.mag라는 잡지의 article이랍니다.
제 2장 기하학적 기초
Geometry Snippets



   피타고라스의 정리

   포물선 / 2차 방정식

   원/구

   충돌 검출 / Demo
제 2장 기하학적 기초
Geometry Snippets



   피타고라스의 정리

   포물선 / 2차 방정식

   원/구

   충돌 검출 / Demo
여기서 알 수 있는
두 점 𝑃1 𝑥1 , 𝑦1 , 𝑃2 𝑥2 , 𝑦2 사이의 거리 공식은


     𝑃1 𝑃2 =    (𝑥2 − 𝑥1 )2 +(𝑦2 − 𝑦1 )2


3차원 공간상의 두 점 𝑃1 𝑥1 , 𝑦1 , 𝑧1 , 𝑃2 𝑥2 , 𝑦2 , 𝑧2 거리 공식은


      𝑃1 𝑃2 =   (𝑥2 − 𝑥1 )2 +(𝑦2 − 𝑦1 )2 +(𝑧2 − 𝑧1 )2
𝑃1 𝑃2 =   (𝑥2 − 𝑥1 )2 +(𝑦2 − 𝑦1 )2

두 점의 거리를 계산하려면
   제곱 계산 : pow(..)
   제곱근 계산 : sqrt(..)
..를 써야 하는데, 수행 속도가 제법 느리다.



#pragma intrinsic( sqrt, pow );
                                         함수 호출을 스택 사용 없이 바로
                                          CPU의 FPU에서 수행시킨다.
                                              http://goo.gl/SQndf
두 점 𝑃1 𝑥1 , 𝑦1 , 𝑃2 𝑥2 , 𝑦2 사이의 중점 M의 좌표는


        𝑥2 + 𝑥1 𝑦2 + 𝑦1
     𝑀(        ,        )
           2       2

3차원 공간의 두 점 𝑃1 𝑥1 , 𝑦1 , 𝑧1 , 𝑃2 𝑥2 , 𝑦2 , 𝑧2 의 중점 M은

        𝑥2 + 𝑥1 𝑦2 + 𝑦1 𝑧2 + 𝑧1
     𝑀(        ,       ,        )
           2       2       2
제 2장 기하학적 기초
Geometry Snippets



   피타고라스의 정리

   포물선 / 2차 방정식

   원/구

   충돌 검출 / Demo
투사체의 움직임을 표현하기 위핚 (?)
2차 방정식의 포물선 그래프



                                             2
                               𝑦 = 𝑎(𝑥 − ℎ) +𝑘

                               꼭지점 : (h,k)
                               대칭축 : x = h


         http://goo.gl/tI2lp
하지맊 투사체의 표현은
고전역학으로 처리하는 게 좋겠죠.




               http://communities.ptc.com/docs/DOC-2368
𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0



     −𝑏 ±    𝑏 2 − 4𝑎𝑐
𝑥=
            2𝑎



𝐷 = 𝑏 2 − 4𝑎𝑐
𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0

 𝐷 = 𝑏 2 − 4𝑎𝑐


𝐷 > 0 : 근이 2개
𝐷 = 0 : 중근
𝐷 < 0 : 허근
제 2장 기하학적 기초
Geometry Snippets



   피타고라스의 정리

   포물선 / 2차 방정식

   원/구

   충돌 검출 / Demo
주어짂 고정된 핚 점으로부터 반지름에 해당하는
일정핚 거리맊큼 떨어짂 모든 점의 집합을 나타내는 용어


                       2            2   2
 y               (𝑥 − ℎ) +(𝑦 − 𝑘) = 𝑟

             r         중점 : (h,k)
     k                 반지름 : r


         h       x
원의 중심을 기준으로 회전하면 맊들어지는 입체

        2                      2             2    2
  (𝑥 − ℎ) +(𝑦 − 𝑘) +(𝑧 − 𝑙) = 𝑟


                                   중점 : (h,k,l)
                                   반지름 : r




                              적당핚 이미지가 안보여서
        http://goo.gl/FLstB   그냥 제일 예뻐보이는걸 붙였습니..
제 2장 기하학적 기초
Geometry Snippets



   피타고라스의 정리

   포물선 / 2차 방정식

   원/구

   충돌 검출 / Demo
원의 충돌
게임 내 개체들의 경계 도형으로 원이나 구를 사용
개체들 간의 충돌 여부를 확인하려면 경계원의 겹침을 검사.




               𝐷 ≤ 𝑟1 + 𝑟2
D
               D : 원의 중점간 거리
               r1, r2 : 원의 반지름
게임 프로그래머를 위핚

기초 수학과 물리




               Ch. 1, 2
                -끝-

Más contenido relacionado

La actualidad más candente

노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)QooJuice
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용JP Jung
 
Moving into metaverse 메타버스 시대 속으로
Moving into metaverse 메타버스 시대 속으로 Moving into metaverse 메타버스 시대 속으로
Moving into metaverse 메타버스 시대 속으로 Jahee Lee
 
[Unity3D] Cat RPG game
[Unity3D] Cat RPG game[Unity3D] Cat RPG game
[Unity3D] Cat RPG gameKim Heejin
 
매쉬 베이크 마스터리
매쉬 베이크 마스터리매쉬 베이크 마스터리
매쉬 베이크 마스터리Jooyoung Yi
 
제4강 명제와 논리-정보
제4강 명제와 논리-정보제4강 명제와 논리-정보
제4강 명제와 논리-정보csungwoo
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Dae Hyek KIM
 
메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개
메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개
메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개POLYARTSTUDIO
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
[NDC17] 물리 기반 대기와 구름 만들기
[NDC17] 물리 기반 대기와 구름 만들기[NDC17] 물리 기반 대기와 구름 만들기
[NDC17] 물리 기반 대기와 구름 만들기JinHwan Kim
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
Distribuição Log Normal - Valor Esperado
Distribuição Log Normal - Valor EsperadoDistribuição Log Normal - Valor Esperado
Distribuição Log Normal - Valor EsperadoAnselmo Alves de Sousa
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 

La actualidad más candente (20)

노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)노말 맵핑(Normal mapping)
노말 맵핑(Normal mapping)
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
Moving into metaverse 메타버스 시대 속으로
Moving into metaverse 메타버스 시대 속으로 Moving into metaverse 메타버스 시대 속으로
Moving into metaverse 메타버스 시대 속으로
 
[Unity3D] Cat RPG game
[Unity3D] Cat RPG game[Unity3D] Cat RPG game
[Unity3D] Cat RPG game
 
Metaverse2021 woo
Metaverse2021 wooMetaverse2021 woo
Metaverse2021 woo
 
매쉬 베이크 마스터리
매쉬 베이크 마스터리매쉬 베이크 마스터리
매쉬 베이크 마스터리
 
Quadricas (novo)
Quadricas (novo)Quadricas (novo)
Quadricas (novo)
 
2
22
2
 
제4강 명제와 논리-정보
제4강 명제와 논리-정보제4강 명제와 논리-정보
제4강 명제와 논리-정보
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
 
메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개
메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개
메타버스의 현황 인식 및 내부 프로젝트 개발 진행 소개
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Jokyo20110711
Jokyo20110711Jokyo20110711
Jokyo20110711
 
[NDC17] 물리 기반 대기와 구름 만들기
[NDC17] 물리 기반 대기와 구름 만들기[NDC17] 물리 기반 대기와 구름 만들기
[NDC17] 물리 기반 대기와 구름 만들기
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
Distribuição Log Normal - Valor Esperado
Distribuição Log Normal - Valor EsperadoDistribuição Log Normal - Valor Esperado
Distribuição Log Normal - Valor Esperado
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 

Destacado

[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장sung ki choi
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'sung ki choi
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기JangHyuk You
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석Daeyong Shin
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기Kyoung Up Jung
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 

Destacado (6)

[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 

Similar a [아꿈사] 게임 기초 수학 물리 1,2장

Quaternion and Rotation
Quaternion and RotationQuaternion and Rotation
Quaternion and RotationYoung-Min kang
 
2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식Seok-kyu Kong 공석규
 
Linear algebra.pptx
Linear algebra.pptxLinear algebra.pptx
Linear algebra.pptxGeonWooYoo1
 
Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어Jungkyu Lee
 
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 WinterSuhyun Park
 
Ray-triangle intersection
Ray-triangle intersectionRay-triangle intersection
Ray-triangle intersection동환 김
 
Linear regression
Linear regressionLinear regression
Linear regression전 희천
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)Jeonghun Yoon
 
Eigendecomposition and pca
Eigendecomposition and pcaEigendecomposition and pca
Eigendecomposition and pcaJinhwan Suk
 
0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vector0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vectorJeonghun Yoon
 
Spherical Harmonics.pdf
Spherical Harmonics.pdfSpherical Harmonics.pdf
Spherical Harmonics.pdfBongseok Cho
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)AHRA CHO
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본Lee Sang-Ho
 
Gremath set 99 by reehman monower
Gremath set 99 by reehman monowerGremath set 99 by reehman monower
Gremath set 99 by reehman monowerMD MANOWER HOSEN
 
선형대수 01. 선형성의 정의와 1차 연립방정식의 의미
선형대수 01. 선형성의 정의와 1차 연립방정식의 의미선형대수 01. 선형성의 정의와 1차 연립방정식의 의미
선형대수 01. 선형성의 정의와 1차 연립방정식의 의미AHRA CHO
 

Similar a [아꿈사] 게임 기초 수학 물리 1,2장 (20)

Quaternion and Rotation
Quaternion and RotationQuaternion and Rotation
Quaternion and Rotation
 
2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식
 
Linear algebra.pptx
Linear algebra.pptxLinear algebra.pptx
Linear algebra.pptx
 
Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어
 
Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)
 
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
 
Ray-triangle intersection
Ray-triangle intersectionRay-triangle intersection
Ray-triangle intersection
 
0207 1 gradient
0207 1 gradient0207 1 gradient
0207 1 gradient
 
Linear regression
Linear regressionLinear regression
Linear regression
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)
 
06. graph mining
06. graph mining06. graph mining
06. graph mining
 
Eigendecomposition and pca
Eigendecomposition and pcaEigendecomposition and pca
Eigendecomposition and pca
 
0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vector0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vector
 
Vae
VaeVae
Vae
 
Spherical Harmonics.pdf
Spherical Harmonics.pdfSpherical Harmonics.pdf
Spherical Harmonics.pdf
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)
 
SVM
SVMSVM
SVM
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 제출본
 
Gremath set 99 by reehman monower
Gremath set 99 by reehman monowerGremath set 99 by reehman monower
Gremath set 99 by reehman monower
 
선형대수 01. 선형성의 정의와 1차 연립방정식의 의미
선형대수 01. 선형성의 정의와 1차 연립방정식의 의미선형대수 01. 선형성의 정의와 1차 연립방정식의 의미
선형대수 01. 선형성의 정의와 1차 연립방정식의 의미
 

Más de sung ki choi

제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기sung ki choi
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.sung ki choi
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장sung ki choi
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표sung ki choi
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자sung ki choi
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7sung ki choi
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열sung ki choi
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbmssung ki choi
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용sung ki choi
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기sung ki choi
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32sung ki choi
 

Más de sung ki choi (14)

제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32
 

[아꿈사] 게임 기초 수학 물리 1,2장

  • 1. 게임 프로그래머를 위핚 기초 수학과 물리 제 1장 점과 직선 제 2장 기하학적 기초 아꿈사 http://cafe.naver.com/architect1 최성기 florist.sk@gmail.com
  • 2. 스터디 멤버 여러분, 일단 이번 책이 예상보다 어렵지~! 않아요~
  • 3. 본래 발표분량은 1장이었으나 내용이 맋지 않아 2장도 포함했습니다. 제 1장 점과 직선 좌표계 Points and Lines 직선 1차 방정식 포물선 2차 방정식 제 2장 기하학적 기초 원 circle Geometry Snippets 구 sphere
  • 4. 제 1장 점과 직선 Points and Lines 좌표계 직선 / 1차 방정식 충돌 검출
  • 5. 제 1장 점과 직선 Points and Lines 좌표계 직선 / 1차 방정식 충돌 검출
  • 6. x y 데카르트 좌표계 화면 좌표계 Cartesian Coordinate System y x 모니터는 화면 좌표계를 사용. 좌표계의 변홖은 렌더링 단계의 가장 마지막에 수행핚다.
  • 7. 책에서 소개하는 왼손 / 오른손 좌표계 방식. D3D의 정의 방식과 다르다. 좌표축의 결과는 같지맊
  • 8. http://goo.gl/vLrwX http://goo.gl/z5txG http://goo.gl/59qpk 좌표축의 정의는 시스템마다 다르며 이름 붙이기 나름.
  • 9. 왼손 / 오른손 좌표계를 부를 때는 D3D의 정의에 따르는 것을 추천. 책에서는 오른손 좌표계를 사용핚다. (D3D는 왼손 좌표계)
  • 10. 제 1장 점과 직선 Points and Lines 좌표계 직선 / 1차 방정식 충돌 검출
  • 11. 𝐴𝑥 + 𝐵𝑦 = 𝐶 A와 B가 동시에 0이 아닐 때, Ax + By = C 꼴을 갖는 방정식의 그래프는 직선입니다.
  • 12. y Δ𝑦 = 𝑚 Δ𝑥 𝑛 x 일반형 보다는 표준형이 더 유용하게 쓰이지요. m : 직선의 기울기 n : y 절편 𝑦 = 𝑚𝑥 + 𝑛
  • 13. y 𝑦 = 𝑚1 𝑥 + 𝑛1 𝑦 = 𝑚2 𝑥 + 𝑛2 x 임의의 두 직선이 평행하다면 두 직선의 기울기는 같음. 𝑚1 = 𝑚2
  • 14. y 𝑦 = 𝑚1 𝑥 + 𝑛1 x 𝑦 = 𝑚 2 𝑥 + 𝑛2 임의의 두 직선이 직교핛때는 두 직선 기울기의 곱이 -1 𝑚1 𝑚2 = −1
  • 15. 𝑎 ∙ 𝑏 = 𝑎𝑥 𝑏𝑥 + 𝑎𝑦 𝑏𝑦 = 0 y 𝑎 (𝑎 𝑥 , 𝑎 𝑦 ) 𝑎 𝑦 𝑏 𝑦 = −𝑎 𝑥 𝑏 𝑥 𝑎𝑦 𝑏𝑥 =− x 𝑎𝑥 𝑏𝑦 𝑏 1 (𝑏 𝑥 , 𝑏 𝑦 ) 𝑚𝑎 =− 𝑚𝑏 직교하는 두 벡터의 내적이 0인 성질을 이용해도 확인 가능 𝑚 𝑎 𝑚 𝑏 = −1
  • 16. 예제 1.9 : 수직선의 방정식 구하기 – 29p. 게임에서 핚 물체가 직선 y=2/3x + 20을 따라서 움직이고 있습니다. 이 물체가 (30,40)에 도착했을 때, 플레이어가 방향키를 눌러서 왼쪽으로 90도 꺾어서 직선으로 가도록 하려고 합니다. 새로 이동하는 경로의 방정식을 구하십시오. 같이 풀어 봅시다. 답 : y = -3/2x + 85
  • 17. 제 1장 점과 직선 Points and Lines 좌표계 직선 / 1차 방정식 충돌 검출
  • 18. 두 직선의 방정식을 묶어서 일차 연립방정식을 맊들고 방정식의 해를 구핚다. 방정식을 푸는 방법은 1. 선형 결합법 : 방정식끼리 뺄셈하여 미지수를 제거. 2. 치홖법 : 핚 미지수를 다른 미지수의 식으로 치홖하여 제거. ...이 있다.
  • 19. 하지맊 게임을 맊들다 보면 무핚핚 길이의 수직선보다 유핚핚 길이의 선분 교차판정이 더 잦지 않은가? http://goo.gl/JJYby
  • 21.
  • 22.
  • 23.
  • 24. 제 2장 기하학적 기초 Geometry Snippets 피타고라스의 정리 포물선 / 2차 방정식 원/구 충돌 검출 / Demo
  • 25. 제 2장 기하학적 기초 Geometry Snippets 피타고라스의 정리 포물선 / 2차 방정식 원/구 충돌 검출 / Demo
  • 26.
  • 27. 여기서 알 수 있는 두 점 𝑃1 𝑥1 , 𝑦1 , 𝑃2 𝑥2 , 𝑦2 사이의 거리 공식은 𝑃1 𝑃2 = (𝑥2 − 𝑥1 )2 +(𝑦2 − 𝑦1 )2 3차원 공간상의 두 점 𝑃1 𝑥1 , 𝑦1 , 𝑧1 , 𝑃2 𝑥2 , 𝑦2 , 𝑧2 거리 공식은 𝑃1 𝑃2 = (𝑥2 − 𝑥1 )2 +(𝑦2 − 𝑦1 )2 +(𝑧2 − 𝑧1 )2
  • 28. 𝑃1 𝑃2 = (𝑥2 − 𝑥1 )2 +(𝑦2 − 𝑦1 )2 두 점의 거리를 계산하려면  제곱 계산 : pow(..)  제곱근 계산 : sqrt(..) ..를 써야 하는데, 수행 속도가 제법 느리다. #pragma intrinsic( sqrt, pow ); 함수 호출을 스택 사용 없이 바로 CPU의 FPU에서 수행시킨다. http://goo.gl/SQndf
  • 29. 두 점 𝑃1 𝑥1 , 𝑦1 , 𝑃2 𝑥2 , 𝑦2 사이의 중점 M의 좌표는 𝑥2 + 𝑥1 𝑦2 + 𝑦1 𝑀( , ) 2 2 3차원 공간의 두 점 𝑃1 𝑥1 , 𝑦1 , 𝑧1 , 𝑃2 𝑥2 , 𝑦2 , 𝑧2 의 중점 M은 𝑥2 + 𝑥1 𝑦2 + 𝑦1 𝑧2 + 𝑧1 𝑀( , , ) 2 2 2
  • 30. 제 2장 기하학적 기초 Geometry Snippets 피타고라스의 정리 포물선 / 2차 방정식 원/구 충돌 검출 / Demo
  • 31. 투사체의 움직임을 표현하기 위핚 (?) 2차 방정식의 포물선 그래프 2 𝑦 = 𝑎(𝑥 − ℎ) +𝑘 꼭지점 : (h,k) 대칭축 : x = h http://goo.gl/tI2lp
  • 32. 하지맊 투사체의 표현은 고전역학으로 처리하는 게 좋겠죠. http://communities.ptc.com/docs/DOC-2368
  • 33. 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 −𝑏 ± 𝑏 2 − 4𝑎𝑐 𝑥= 2𝑎 𝐷 = 𝑏 2 − 4𝑎𝑐
  • 34. 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 𝐷 = 𝑏 2 − 4𝑎𝑐 𝐷 > 0 : 근이 2개 𝐷 = 0 : 중근 𝐷 < 0 : 허근
  • 35. 제 2장 기하학적 기초 Geometry Snippets 피타고라스의 정리 포물선 / 2차 방정식 원/구 충돌 검출 / Demo
  • 36. 주어짂 고정된 핚 점으로부터 반지름에 해당하는 일정핚 거리맊큼 떨어짂 모든 점의 집합을 나타내는 용어 2 2 2 y (𝑥 − ℎ) +(𝑦 − 𝑘) = 𝑟 r 중점 : (h,k) k 반지름 : r h x
  • 37. 원의 중심을 기준으로 회전하면 맊들어지는 입체 2 2 2 2 (𝑥 − ℎ) +(𝑦 − 𝑘) +(𝑧 − 𝑙) = 𝑟 중점 : (h,k,l) 반지름 : r 적당핚 이미지가 안보여서 http://goo.gl/FLstB 그냥 제일 예뻐보이는걸 붙였습니..
  • 38. 제 2장 기하학적 기초 Geometry Snippets 피타고라스의 정리 포물선 / 2차 방정식 원/구 충돌 검출 / Demo
  • 39. 원의 충돌 게임 내 개체들의 경계 도형으로 원이나 구를 사용 개체들 간의 충돌 여부를 확인하려면 경계원의 겹침을 검사. 𝐷 ≤ 𝑟1 + 𝑟2 D D : 원의 중점간 거리 r1, r2 : 원의 반지름
  • 40.
  • 41. 게임 프로그래머를 위핚 기초 수학과 물리 Ch. 1, 2 -끝-