viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec86fa11d0283110260b998d7cfa8997b9266521891b72ef491aee60262314587f72d8980c1b49745cd4dd4fe14a7aba006e3f6709a4


๋ฒ ์ง€์–ด ๊ณก์„ ์„ ์ด์šฉํ•ด Unity ์—๋””ํ„ฐ์—์„œ ์นด์ด์‚ฌ Q ์Šคํ‚ฌ ์—ฐ์ถœ์„ ๋”ฐ๋ผํ•ด๋ณด์ž.


์šฐ์„  ๋ฒ ์ง€์–ด ๊ณก์„ (Bezier Curve)์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

https://blog.coderifleman.com/2016/12/30/bezier-curves/

์‰ฝ๊ฒŒ ์–˜๊ธฐํ•˜์ž๋ฉด ์–ด๋„๋น„ ํฌํ† ์ƒต์—์„œ ์ง€์›ํ•˜๋Š” ํŽœ ํˆด์— ์ ์šฉ๋˜๋Š” ์›๋ฆฌ์ด๋ฉฐ, ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋Š” ๊ณต์‹์ด๋‹ค.

์ด์ผ€์‹œ์•ˆ ํญ์šฐ ๋ฏธ์‚ฌ์ผ์˜ ๊ถค์ ์ด ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๋ฒ ์ง€์–ด ๊ณก์„ ์„ ์ด์šฉํ•ด ๋”ฐ๋ผํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.


img.png
์ถœ์ฒ˜: https://www.quora.com/What-is-a-Bezier-curve-in-Adobe-Photoshop-Why-would-we-use-it

์œ„ ๊ทธ๋ฆผ์€ ํฌํ† ์ƒต์—์„œ ํŽœํˆด์„ ์‚ฌ์šฉํ•ด ๊ทธ๋ฆฐ ๋ฒ ์ง€์–ด ๊ณก์„ ์ด๋‹ค.

๊ณก์„ ์€ ํ•˜์–€ ๋„ค๋ชจ(Anchor Point)์—์„œ ์‹œ์ž‘ํ•ด ํ•˜์–€ ๋„ค๋ชจ์—์„œ ๋๋‚œ๋‹ค. ์—ฌ๊ธฐ์„œ ๊นŒ๋งŒ ๋„ค๋ชจ(Handle)์— ์˜ํ•ด ๊ณก์„ ์˜ ํœ˜์–ด์ง์ด ๊ฒฐ์ •๋œ๋‹ค.

๊ทธ๋ฆผ์—์„œ A1์—์„œ A2๊นŒ์ง€ ๊ณก์„ 1, A2์—์„œ A3๊นŒ์ง€ ๊ณก์„ 2, ์ด ๋‘ ๊ฐœ์˜ ๊ณก์„ ์ด ๊ทธ๋ ค์ ธ์žˆ๋‹ค.

๊ณก์„ 1์€ h1, h2์— ์˜ํ•ด์„œ ๊ณก์„ ์ด ๊ฒฐ์ •๋˜๊ณ  ๊ณก์„ 2๋Š” h3, h4์— ์˜ํ•ด์„œ ๊ณก์„ ์ด ๊ฒฐ์ •๋œ๋‹ค.

h5๋Š” ๋‹ค์Œ ๊ทธ๋ ค์งˆ ๊ณก์„ ์„ ์œ„ํ•ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๊ณก์„ 1๊ณผ ๊ณก์„ 2 ์–ด๋А ๊ณก์„ ์—๋„ ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค.


๋ฒ ์ง€์–ด ๊ณก์„ ์€ ์œ„ ๊ทธ๋ฆผ์—์„œ์˜ ๊นŒ๋งŒ ๋„ค๋ชจ(Handle)์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ 1์ฐจ(Linear), 2์ฐจ(Quadratic), 3์ฐจ(Cubic)์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

๊ณก์„ ์˜ ์‹œ์ž‘๊ณผ ๋์„ ๋‹ด๋‹นํ•˜๋Š” Anchor Point๋Š” 2๊ฐœ๋กœ ๊ณ ์ •๋˜๊ณ ,

๊ณก์„ ์˜ ํœ˜์–ด์ง์„ ๋‹ด๋‹นํ•˜๋Š” Handle์ด ์—†์œผ๋ฉด 1์ฐจ, 1๊ฐœ๋ฉด 2์ฐจ, 2๊ฐœ๋ฉด 3์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์ธ ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์€ 2๊ฐœ์˜ Anchor Point์™€ 2๊ฐœ์˜ Handle์„ ์‚ฌ์šฉํ•˜๋Š” 3์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์ด๋‹ค.


img.png

www.desmos.com/calculator/d1ofwre0fr

์œ„ ๋งํฌ์—์„œ ์ˆ˜์‹์„ ํ™œ์šฉํ•ด 3์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์„ ๊ทธ๋ ค๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ๊ณต์‹์— ๋Œ€ํ•ด์„œ๋Š” ๋Œ€์ถฉ ์•Œ๊ฒ ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฑธ๋กœ ์–ด๋–ป๊ฒŒ ์ด์ผ€์‹œ์•ˆ ํญ์šฐ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ธ๊ฐ€?

์šฐ์„  ์ด์ผ€์‹œ์•„ ํญ์šฐ ๋ฏธ์‚ฌ์ผ์˜ ๊ถค์ ์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด์ž.

์‹œ์ „์ž์˜ ๋ชธ์—์„œ ์‚ฌ์ถœ๋˜์–ด ํฌ๊ฒŒ ํœ˜๋Š” ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋ฉฐ ๋Œ€์ƒ์—๊ฒŒ ๋‚ ์•„๊ฐ„๋‹ค.


1. ์‹œ์ „์ž์˜ ๋ชธ์—์„œ ์‚ฌ์ถœํ•œ๋‹ค.

2. ์‚ฌ์ถœํ•˜์ž๋งˆ์ž ํฌ๊ฒŒ ํœœ๋‹ค.

3. ๋Œ€์ƒ ๊ทผ์ฒ˜์—์„œ ์ž‘๊ฒŒ ํœœ๋‹ค.

4. ๋Œ€์ƒ์—๊ฒŒ ๋ช…์ค‘ํ•œ๋‹ค.


์œ„ ๊ณผ์ •์—์„œ ์‹œ์ „์ž์˜ ๋ชธ์—์„œ ์‚ฌ์ถœํ•˜๊ณ  ๋Œ€์ƒ์—๊ฒŒ ๋ช…์ค‘ํ•˜๋Š” 1๋ฒˆ๊ณผ 4๋ฒˆ์€ 3์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์—์„œ Anchor Point ์ด๊ณ ,

2๋ฒˆ ํฌ๊ฒŒ ํœ˜๋Š” ๊ฒƒ๊ณผ 3๋ฒˆ ์ž‘๊ฒŒ ํœ˜๋Š” ๊ฒƒ์€ 3์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์—์„œ์˜ Handle ์ด๋‹ค.


img.png

์ด๋ฅผ ์ˆ˜์‹์œผ๋กœ ๊ทธ๋ ค๋ณด๋ฉด ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค.

์ฃผํ™ฉ์ƒ‰ ์ ์€ Anchor Point ์™€ Handle ์„ ์˜๋ฏธํ•˜๊ณ , ๋นจ๊ฐ„์ƒ‰ ์„ ์ด ๋ฒ ์ง€์–ด ๊ณก์„ ์ด๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ ์ด์ผ€์‹œ์•ˆ ํญ์šฐ ๋ฏธ์‚ฌ์ผ 12๊ฐœ ์ค‘ ๋‹จ ํ•˜๋‚˜์˜ ๊ถค์ ๋งŒ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด์ผ€์‹œ์•ˆ ํญ์šฐ ๋ฏธ์‚ฌ์ผ์€ ๋‹ค์–‘ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์‚ฌ์ถœ๋˜์–ด ๋‹ค์–‘ํ•œ ๊ณก์„ ์„ ๊ทธ๋ฆฌ๋ฉฐ ๋‚ ์•„๊ฐ„๋‹ค.


img.gif





์—ฌํƒœ๊นŒ์ง€ ๋ฒ ์ง€์–ด ๊ณก์„ ์„ ์ด์šฉํ•ด ์ด์ผ€์‹œ์•ˆ ํญ์šฐ ๋ฏธ์‚ฌ์ผ์˜ ๊ถค์ ์„ ๊ทธ๋ ค๋ดค๋‹ค.

์ด์ œ ๊ทธ ๊ถค์ ์„ ๋”ฐ๋ผ ๋‚ ์•„๊ฐ€๋Š” ๋ฏธ์‚ฌ์ผ์„ Unity ์—์„œ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ๋งŒ ๋‚จ์•˜๋‹ค.


$$P = {(1-t)}^{3}{P}_{0}+3{(1-t)}^{2}t{P}_{1}+3(1-t){t}^{2}{P}_{2}+{t}^{3}{P}_{3}$$


3์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์˜ ์‹์€ ์œ„์™€ ๊ฐ™๋‹ค. (์ฐธ๊ณ  ๋งํฌ: https://en.wikipedia.org/wiki/B%C3%A9zier_curve)


ํ‹ฐ์Šคํ† ๋ฆฌ์— ์“ด๊ฑธ ๋ณต๋ถ™ํ•œ๊ฑด๋ฐ ๋‚ด์šฉ์ด ์ œํ•œ์„ ๋„˜์–ด์„œ ๊ทธ๋ƒฅ ํ‹ฐ์Šคํ† ๋ฆฌ ๋งํฌ ๊ฒ€


https://tonikat.tistory.com/10