Skip to content

Latest commit

ย 

History

History
56 lines (28 loc) ยท 2.1 KB

Geometry.md

File metadata and controls

56 lines (28 loc) ยท 2.1 KB

์ขŒํ‘œ ์‹œ์Šคํ…œ (Geometry)

์—๋””ํ„ฐ์—์„œ ๋ Œ๋”๋ง ๋˜๋Š” ๋ชจ๋“  ๋ ˆ์ด์–ด๋“ค์€ ๊ธฐ๋ณธ ์ขŒํ‘œ ์‹œ์Šคํ…œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

css ์—์„œ ์ œ๊ณต๋˜๋Š” x, y, width, height ๋กœ ๋งž์ถฐ์ง„ absolute ํ˜•ํƒœ์˜ ์ขŒํ‘œ ์‹œ์Šคํ…œ์ด ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ(Screen) ์ขŒํ‘œ์™€ ์›”๋“œ(World) ์ขŒํ‘œ

์Šคํฌ๋ฆฐ ์ขŒํ‘œ์€ ๋ง ๊ทธ๋Œ€๋กœ ๋””์Šคํ”Œ๋ ˆ์ด ํ™”๋ฉด์—์„œ ๋‚ด๊ฐ€ ์–ด๋А ์ง€์ ์— ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๊ฒƒ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์›”๋“œ ์ขŒํ‘œ๋Š” ๋ Œ๋”๋ง ๋˜๋Š” ๋ ˆ์ด์–ด๊ฐ€ Canvas ์œ„์—์„œ ์–ด๋””์— ์žˆ๋Š”์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๋ชจ๋“  ํ™”๋ฉด์€ ์Šคํฌ๋ฆฐ ์ขŒํ‘œ ๊ธฐ์ค€์ด๊ธด ํ•˜์ง€๋งŒ ์‹ค์ œ ํ–‰์œ„๋ฅผ ์œ„ํ•œ ์ขŒํ‘œ๋Š” ์›”๋“œ ์ขŒํ‘œ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘๊ฐ€์ง€ ์ขŒํ‘œ๋ฅผ ๊ณ„์†์ ์œผ๋กœ ๋ณ€ํ™˜์„ ํ•ด์„œ ์œ„์น˜๋ฅผ ๋งž์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ขŒํ‘œ๋ฅผ ์›”๋“œ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜

ํ™”๋ฉด์— ํด๋ฆญํ•œ ํ•˜๋‚˜์˜ ์ ์„ ํ•ด๋‹น ์บ”๋ฒ„์Šค์˜ ์‹ค์ œ ์›”๋“œ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ขŒํ‘œ๋Š” viewport ์‹œ์Šคํ…œ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// e ๋Š” ๋ฐœ์ƒํ•œ ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. 
const pos = this.$viewport.getWorldPosition(e);

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์Šคํฌ๋ฆฐ์„ ํด๋ฆญํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์›”๋“œ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›”๋“œ ์ขŒํ‘œ๋ฅผ ์Šคํฌ๋ฆฐ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜

์‹ค์ œ ๋ ˆ์ด์–ด์— ์–ด๋–ค ์œ„์น˜ ์ด๋™์ด ์ผ์–ด๋‚œ ์ดํ›„๋กœ ํ™”๋ฉด์—์„œ ๊ทธ๋ ค์ง€๋Š” ๊ทธ ์˜์—ญ์„ ์•Œ์•„์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Selection ํˆด์„ ๋งŒ๋“ ๋‹ค๋˜๊ฐ€ ClipPath ์—๋””ํŒ… ๋„๊ตฌ๋ฅผ ๋งŒ๋“ ๋‹ค๋˜๊ฐ€ ํ•˜๋Š” ์ผ๋“ค์ด์ฃ .

์ด ๋•Œ ํ•ด๋‹น ๋ ˆ์ด์–ด์˜ ์œ„์น˜๋ฅผ ๊ฐ€์ง€๊ณ  viewport ๊ธฐ์ค€์˜ ์Šคํฌ๋ฆฐ ์ขŒํ‘œ๋กœ ์˜ฎ๊ฒจ์„œ ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค.

const layer = this.$selection.current;
const verties = layer.verties;

const screenPos = this.$viewport.applyVerties(verties);

์ขŒํ‘œ์‹œ์Šคํ…œ์€ ๋ชจ๋‘ Matrix(ํ–‰๋ ฌ)

ํ˜„์žฌ ๋ชจ๋“  ์ขŒํ‘œ ์‹œ์Šคํ…œ์€ Matrix(ํ–‰๋ ฌ) ์„ ์‚ฌ์šฉํ•ด์„œ ์ ์šฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜์–ด ์žˆ๋Š” ์ด์œ ๋Š” ์—ฌ๋Ÿฌ ์ค‘์ฒฉ๋œ ์œ„์น˜๋ฅผ ํ•œ๋ฒˆ์— ๊ณ„์‚ฐํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋กœ๋Š” gl-matrix ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.