note
![[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 2](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJHZAq%2FbtrqkUHe01O%2FmKEwUkAIfW5OO4qHIHfXx1%2Fimg.png)
[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 2
GIS Developer ๋์ Three.js ๊ฐ์ข : https://www.youtube.com/watch?v=ITA9no8Bsio ์ง์ค๋ฉํธ๋ฆฌ (Geometry) : 3์ฐจ์ ์ค๋ธ์ ํธ์ ํ์์ ์ ์ Three.js ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์ง์ค๋ฉํธ๋ฆฌ : ์ง์ค๋ฉํธ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก BufferGeometry ๋ฅผ ์์๋ฐ๊ณ ์๋ค. * BufferGeometry - BoxGeometry : ๊ฐ๋ก, ์ธ๋ก, ๊น์ด์ ๋ํ ํฌ๊ธฐ์ ๊ฐ๋ก, ์ธ๋ก, ๊น์ด ๊ฐ๊ฐ์ ๋ํ ๋ถํ (Segments) ์๋ก ์ ์๋๋ค. (๋ถํ ์ LineBasicMaterial์ ํตํด ์๊ฐ์ ์ผ๋ก ํ์ธ ๊ฐ๋ฅ) - CircleGeometry : ์ํ์ ํฌ๊ธฐ์ธ ๋ฐ์ง๋ฆ, ์ํ์ ๊ตฌ์ฑํ๋ ๋ถํ ๊ฐ์, ์์ ๊ฐ๋, ์ฐ์ฅ ๊ฐ๋๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค. - ConeGeometry : ..
[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 1
GIS Developer ๋์ Three.js ๊ฐ์ข : https://www.youtube.com/watch?v=ZGACJosABBw ํ๊ธฐ์ฉ ๊นํ๋ธ : https://github.com/sduu/three-tutorial ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ 1. Visual Studio Code ์ค์น https://code.visualstudio.com/ 2. Three.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น : https://threejs.org/ : ์ค์ต์ module ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐํ๊ธฐ๋๋ฌธ์ three.module.js ํ์ผ์ ์ฌ์ฉํ๋ค. 3. ์ค์ต์ ์งํํ html ํ์ผ์ ์์ฑ 4. ํ์ด์ง ์คํ์ ์ํด ์ค์ ํ์ผ์ ์์ฑ - VSCode ์คํ ๋ฐ ๋๋ฒ๊ทธ๋ฅผ ์ ํ (ctrl + shift + D) - launch.json ํ์ผ ๋ง๋ค๊ธฐ๋ฅผ ์ ํ ..
![[JS] ํ ๊ฐ๋
์ดํดํ๊ธฐ 3 | ์นธ ์์นด๋ฐ๋ฏธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT6ZIQ%2FbtrhMIOJdx0%2FC5TccvUqgSHqT7gEuUZ2l0%2Fimg.png)
[JS] ํ ๊ฐ๋ ์ดํดํ๊ธฐ 3 | ์นธ ์์นด๋ฐ๋ฏธ
https://ko.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-forces/a/gravitational-attraction ์ค๋ ฅ ์ธ๋ ฅ ์ง๋์ ๊ฐ์ง ๋ชจ๋ ๋ฌผ์ฒด๋ ๋ชจ๋ ๋ค๋ฅธ ๋ฌผ์ฒด์ ์ค๋ ฅ์ ๊ฐํ๋ค. ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค๋ ฅ์ ์ธ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ ์์ด ์๋ค. F ๋ ์ค๋ ฅ์ ๋ํ๋ด๋ ๊ฐ์ผ๋ก, ์ต์ข ์ ์ผ๋ก ๊ณ์ฐํ์ฌ applyForce() ํจ์์ ์ ๋ฌํ๋ ค๋ ๋ฒกํฐ๋ค. G ๋ ๋ง์ ์ธ๋ ฅ์ ์์๋ก 6.67428 x 10^-11 ์ด(s) ์ ๊ณฑ ๋ถ์ ํฌ๋ก๊ทธ๋จ(kg) ๋ถ์ ๋ฏธํฐ(m) ์ธ์ ๊ณฑ์ด๋ค. ์ด๊ฒ์ ํ์ ๋ณด๋ค ์ฝํ๊ฒ ๋ง๋ค๊ฑฐ๋ ๋ณด๋ค ๊ฐํ๊ฒ ๋ง๋๋ ์์๋ค. ์ด ๊ฐ์ 1๋ก ๋๊ณ ๋ฌด์ํด๋ ํฐ์ผ๋์ง ์๋๋ค. mโโ ๊ณผ ..
![[JS] ํ ๊ฐ๋
์ดํดํ๊ธฐ 2 | ์นธ ์์นด๋ฐ๋ฏธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUneMq%2FbtrhKtE5PTE%2FpoOH4ptSj5xK8j4vYJ48y0%2Fimg.png)
[JS] ํ ๊ฐ๋ ์ดํดํ๊ธฐ 2 | ์นธ ์์นด๋ฐ๋ฏธ
https://ko.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-forces/a/modeling-gravity-and-friction ์ค๋ ฅ ๋ฐ ๋ง์ฐฐ๋ ฅ ๋ชจ๋ธ๋ง ์ง๋ ์์ ์์ ๋ง๋ ์ค๋ ฅ์ ๊ฐ์ ํ๋ฉด์ ์ฌ๊ธฐ์ ๋ง์ฐฐ๋ ฅ์ ์ถ๊ฐ์์ผ ๋ณด์. ์ง๊ตฌ์ ์ค๋ ฅ ๋ดํด์ ์ 2๋ฒ์น์ ๋ฐ๋ผ ์ง๋์ด ์์ผ๋ฉด ๊ฐ์๋๊ฐ ํฌ๋ค๊ณ ์ค์ ํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์๋ค. ์ค๋ ฅ์ ๋ฌผ์ฒด์ ์ง๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ๋ฌผ์ฒด๊ฐ ๋ฌด๊ฑฐ์ธ์๋ก ํ์ด ๋ ํฌ๊ธฐ ๋๋ฌธ์ ํ์ด ์ง๋์ ๋ฐ๋ฅธ๋ค๋ฉด, ํ์ ์ง๋์ผ๋ก ๋๋์์ ๋ ์ง๋์ ์ฌ๋ผ์ง๋ค. ํ๋ก๊ทธ๋จ์ ๋ง๋ค์๋ ์ง๋์ ๋ฐ๋ฅธ ๊ฐ์๋(์ค๋ ฅ)์ ์ด๋ฅผ ๊ตฌํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ๋ง์ฐฐ๋ ฅ ๋ง์ฐฐ๋ ฅ์ ์ฐ์ผ์ ์ธ ํ์ด๋ค. ์ฐ์ผ์ ์ธ ํ..
![[JS] ํ ๊ฐ๋
์ดํดํ๊ธฐ 1 | ์นธ ์์นด๋ฐ๋ฏธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzoHdP%2FbtrhLSq9ldb%2FBPgPCXZQkFPhov8MO5pZlK%2Fimg.png)
[JS] ํ ๊ฐ๋ ์ดํดํ๊ธฐ 1 | ์นธ ์์นด๋ฐ๋ฏธ
https://ko.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-forces/a/newtons-laws-of-motion ๋ดํด์ ์ด๋ ๋ฒ์น ๋ฒกํฐ(vector)์ฒ๋ผ, ํ(force)์ ๋ค์ํ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํ์ ์ด๋ค ๊ฐ๋ ฅํ ๋ฌผ๋ฆฌ๋ ฅ, ์ด๋ฅผํ ๋ฉด, ๋ฐ์๋ฅผ ํฐ ํ์ผ๋ก ๋ฏธ๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฐ๋ ์ด ๋ ์ ์๋ค. ์ฌ๊ธฐ์ ๋ค๋ฃฐ ํ ์ ์ ์๋ ๋ฌผ๋ฆฌํ์์ ๋ฐฐ์ฐ๋ ํ์ด๊ณ , ์์ด์ ๋ดํด(Isaac Newton)์ ์ด๋์ ๋ฒ์น์์ ๋น๋กฏ๋ ๊ฐ๋ ์ด๋ค. ํ์ ์ง๋์ ์ง๋ ๋ฌผ์ฒด๋ฅผ ๊ฐ์ํ๋ ๋ฒกํฐ๋ค. ๋ดํด์ ์ 1๋ฒ์น ๋ดํด์ ์ 1๋ฒ์น์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค. ์์ง์ด์ง ์๋ ๋ฌผ์ฒด๋ ๊ณ์ ์์ง์ด์ง ์์ผ๋ ค ํ๊ณ ์์ง์ด๋ ๋ฌผ..
[JS] ๋ฒกํฐ ๊ฐ๋ ์ดํดํ๊ธฐ 3 | ์นธ ์์นด๋ฐ๋ฏธ
https://ko.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-vectors/a/static-functions-vs-instance-methods ์ ์ ํจ์ vs. ์ธ์คํด์ค ๋ฉ์๋ ์๊ณ ๋ฆฌ์ฆ #3 (๋ง์ฐ์ค๋ฅผ ๋ฐ๋ผ ๊ฐ์)์ ์ดํด๋ณด๊ธฐ ์ ์ ๋ฒกํฐ์ PVector๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ํ์ํ ์ค์ํ ๊ฐ๋ ์ ์ดํดํด์ผ ํ ํ์๊ฐ ์๋ค. ์ ์ (static) ๋ฉ์๋์ ์ธ์คํด์ค(instance) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฌด์จ ์ฐจ์ด๊ฐ ์๋์ง ์์๋ณด์. x ๊ฐ์ 0์ด๊ณ y๋ฅผ ๋ํด x๋ 5๊ฐ๋๋ ์ฝ๋๋ฅผ PVector ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ์๋์ ๊ฐ๋ค. ๋ฒกํฐ v์ ๊ฐ์ (0,0)์ด๊ณ v์ u๋ฅผ ๋ํด v๋ (4,5)๊ฐ ๋๋ค..
![[JS] ๋ฒกํฐ ๊ฐ๋
์ดํดํ๊ธฐ 2 | ์นธ ์์นด๋ฐ๋ฏธ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdzl5f8%2FbtrgMsAkdOu%2FJZG8HQZ8FQBInwXmN4i7LK%2Fimg.png)
[JS] ๋ฒกํฐ ๊ฐ๋ ์ดํดํ๊ธฐ 2 | ์นธ ์์นด๋ฐ๋ฏธ
https://ko.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-vectors/a/vector-magnitude-normalization ๋ฒกํฐ ํฌ๊ธฐ์ ์ ๊ทํ ํผํ๊ณ ๋ผ์ค์ ์ ๋ฆฌ ๊ณต์์ ํ์ฉํ๋ฉด ์ค์ ๋ฒกํฐ์ ๊ธธ์ด(ํฝ์ )๋ฅผ ๊ณ์ฐํ ์ ์๋ค. ์ด๋ฅผ PVector ๊ฐ์ฒด์์ ๊ตฌํํ๊ธฐ ์ํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. PVector.prototype.mag = function() { // sqrt : ์ ๊ณฑ๊ทผ์ ๋ฐํํ๋ ๋ฉ์๋ return sqrt(this.x * this.x + this.y * this.y); }; ๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์์ผ๋ฉด ์ ๊ทํ๋ ๊ฐ๋ฅํ๋ค. ์ ๊ทํ๋ ๋ฌด์ธ๊ฐ๋ฅผ ํ์คํ ์ํค๊ฑฐ๋ ๋ค๋ฅธ ๊ฒ..
[JS] ๋ฒกํฐ ๊ฐ๋ ์ดํดํ๊ธฐ 1 | ์นธ ์์นด๋ฐ๋ฏธ
โ์ฐจ์ฅ๋๊ป์ ์๋ ค์ฃผ์ ์ฌ์ดํธ์์ ๋ฒกํฐ ์์๋ณด๊ธฐ https://ko.khanacademy.org/ ๋ฒกํฐ๋? ๋ฒกํฐ๋ ์ฌ๋ฌผ์ ์์ง์์ ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ํ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ์์๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฒกํฐ๋ ํ์ดํ๋ก ํํํ๋ค. ํ์ดํ๊ฐ ๊ฐ๋ฆฌํค๋ ์ชฝ์ ๋ฐฉํฅ์ ๋ํ๋ด๋ฉฐ ํ์ดํ์ ๊ธธ์ด๋ ํฌ๊ธฐ๋ฅผ ๋ํ๋ธ๋ค. ์ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ ๊น? ์ฝ๋๋ฅผ ๋จ์ํํ๊ณ ์ข ๋ ์ ์ ์์ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋ํ, ์์ง์์ ํ๋ก๊ทธ๋๋ฐํ๋ ๋์ ๋ฐ๋ณต์ ์ธ ์ํ ์ฐ์ฐ์ ํ ๋ ํธ๋ฆฌํ ํจ์ ์งํฉ์ ์ญํ ์ ํ๋ค. pVector๋ฅผ ์ด์ฉํ ํ๋ก๊ทธ๋๋ฐ ์์ ์บ๋ฒ์ค๋ฅผ ์ด์ฉํด์ Bouncing Ball ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์๋ค. ๋ํ์ด ๊ฐ ํ๋ ์๋ง๋ค ํน์ ํฝ์ ๋งํผ ๊ฐ๋ก ๋ฐ ์ธ๋ก๋ก ์์ง์ด๋๋ก ํ๋ก๊ทธ๋๋ฐ ๋์ด์๋ค. ํ์ฌ ๋ณ์๋ ์๋์ ๊ฐ๋ค. (x ์ขํ, y ์ขํ, x ์..