All pages
Powered by GitBook
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

๋ฆฌ์ŠคํŠธ๋กœ ์„ค๊ณ„

๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์˜ ์šด์˜ ์ฒด์ œ์—๋Š” ํŒŒ์ผ๊ณผ ํด๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Dynamo์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํŒŒ์ผ๊ณผ ํด๋”๋ฅผ ๊ฐ๊ฐ ํ•ญ๋ชฉ๊ณผ ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ์ฒ˜๋Ÿผ, ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑ, ์ˆ˜์ • ๋ฐ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” Dynamo์—์„œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฆฌ์ŠคํŠธ๋ž€?

๋ฆฌ์ŠคํŠธ๋Š” ์š”์†Œ ๋˜๋Š” ํ•ญ๋ชฉ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ”๋‚˜๋‚˜ ๋ฌถ์Œ์„ ๊ณ ๋ คํ•ด๋ณด์‹ญ์‹œ์˜ค. ๊ฐ ๋ฐ”๋‚˜๋‚˜๋Š” ๋ฆฌ์ŠคํŠธ(๋˜๋Š” ๋ฌถ์Œ) ๋‚ด์˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ฐ”๋‚˜๋‚˜๋ฅผ ๋”ฐ๋กœ ์žก๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฐ”๋‚˜๋‚˜ ๋ฌถ์Œ์„ ์žก๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šด๋ฐ, ์ด๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ๊ด€๊ณ„์— ๋”ฐ๋ผ ์š”์†Œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๋ฐ”๋‚˜๋‚˜

์‚ฌ์ง„ ์ถœ์ฒ˜: Augustus Binu

์‹๋ฃŒํ’ˆ์„ ๊ตฌ์ž…ํ•  ๋•Œ๋Š” ๊ตฌ์ž…ํ•œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋ฐ”๊ตฌ๋‹ˆ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ”๊ตฌ๋‹ˆ ๋˜ํ•œ ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋‚˜๋‚˜ ๋นต์„ ๋งŒ๋“ค๋ ค๋ฉด 3๋ฌถ์Œ์˜ ๋ฐ”๋‚˜๋‚˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(๋ฐ”๋‚˜๋‚˜ ๋นต์„ ๋งŽ์ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ). ์ด ๋ฐ”๊ตฌ๋‹ˆ๋Š” ๋ฐ”๋‚˜๋‚˜ ๋ฌถ์Œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฐ ๋ฌถ์Œ์€ ๋ฐ”๋‚˜๋‚˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐ”๊ตฌ๋‹ˆ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ(2์ฐจ์›)์ด๊ณ  ๋ฐ”๋‚˜๋‚˜ ๋ฌถ์Œ์€ ๋ฆฌ์ŠคํŠธ(1์ฐจ์›)์ž…๋‹ˆ๋‹ค.

Dynamo์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜๊ณ , ๊ฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์€ ์ƒ‰์ธ "0"์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” Dynamo์—์„œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ •์˜๋˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์—ฌ๋Ÿฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์„œ๋กœ ์–ด๋–ป๊ฒŒ ์—ฐ๊ด€๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ƒ‰์ธ

์ฒ˜์Œ์— ๋‹ค์†Œ ์ด์ƒํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ๋Š” ์ ์€ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์ƒ‰์ธ์ด ํ•ญ์ƒ 1์ด ์•„๋‹ˆ๋ผ 0์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์ด๋ผ๊ณ  ํ•˜๋ฉด ์‹ค์ œ๋กœ ์ƒ‰์ธ 0์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์˜ค๋ฅธ์†์˜ ์†๊ฐ€๋ฝ ์ˆ˜๋ฅผ ์…€ ๊ฒฝ์šฐ 1์—์„œ 5๊นŒ์ง€ ์…€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์†๊ฐ€๋ฝ์„ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ์— ํฌํ•จํ•˜๋ฉด Dynamo์—์„œ๋Š” 0๋ถ€ํ„ฐ 4๊นŒ์ง€์˜ ์ƒ‰์ธ์„ ์ง€์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์ด์ƒํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ณ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ƒ‰์ธ์ด ํ‘œ์ค€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ์—๋Š” ํ•ญ๋ชฉ์ด 5๊ฐœ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ณ„์‚ฐ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ๋˜๋Š” ํ•ญ๋ชฉ์€ ์ˆซ์ž์ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ , ๊ณก์„ , ํ‘œ๋ฉด, ํŒจ๋ฐ€๋ฆฌ ๋“ฑ Dynamo์—์„œ ์ง€์›ํ•˜๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ ์œ ํ˜•๋„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

a. ์ƒ‰์ธ

b. ์ 

c. ํ•ญ๋ชฉ

์ข…์ข… ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ํ™•์ธํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ watch ๋…ธ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ watch ๋…ธ๋“œ์—์„œ๋Š” ์ž๋™์œผ๋กœ ๋ฆฌ์ŠคํŠธ ์™ผ์ชฝ์— ๋ชจ๋“  ์ƒ‰์ธ์ด ํ‘œ์‹œ๋˜๊ณ  ์˜ค๋ฅธ์ชฝ์— ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒ‰์ธ์€ ๋ฆฌ์ŠคํŠธ๋กœ ์ž‘์—…ํ•  ๋•Œ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ

๋ฆฌ์ŠคํŠธ์™€ ๊ด€๋ จํ•ด์„œ, ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ์€ ์‚ฌ์šฉ ์ค‘์ธ Dynamo ๋…ธ๋“œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 5๊ฐœ์˜ ์  ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด ์ถœ๋ ฅ์„ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ Dynamo ๋…ธ๋“œ์ธ PolyCurve.ByPoints ๋ฐ Circle.ByCenterPointRadius์— ์—ฐ๊ฒฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. PolyCurve.ByPoints์˜ points ์ž…๋ ฅ์˜ ๊ฒฝ์šฐ "Point[]" ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์  ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

  2. PolyCurve.ByPoints์˜ ์ถœ๋ ฅ์€ ์  5๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ์ž‘์„ฑ๋œ ๋‹จ์ผ PolyCurve์ž…๋‹ˆ๋‹ค.

  3. Circle.ByCenterPointRadius์˜ centerPoint ์ž…๋ ฅ์˜ ๊ฒฝ์šฐ "Point" ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

PolyCurve.ByPoints ๋ฐ Circle.ByCenterPointRadius์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ๋™์ผํ•˜์ง€๋งŒ, Polycurve.ByPoints ๋…ธ๋“œ์—์„œ๋Š” ํ•˜๋‚˜์˜ polycurve๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, Circle.ByCenterPointRadius ๋…ธ๋“œ์—์„œ๋Š” ๊ฐ ์ ์— ์ค‘์‹ฌ์ด ์žˆ๋Š” 5๊ฐœ์˜ ์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, polycurve๋Š” 5๊ฐœ์˜ ์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณก์„ ์œผ๋กœ ๊ทธ๋ ค์ง€๊ณ , ์›์€ ๊ฐ ์ ์— ์„œ๋กœ ๋‹ค๋ฅธ ์›์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

Polycurve.ByPoints์˜ points ์ž…๋ ฅ ์œ„์— ์ปค์„œ๋ฅผ ๋†“์œผ๋ฉด ํ•ด๋‹น ์ž…๋ ฅ์ด "Point[]" ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋์— ๊ฐ๊ด„ํ˜ธ๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ์ด๋Š” ์  ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, polycurve๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ž…๋ ฅ์€ ๊ฐ polycurve์— ๋Œ€ํ•œ ๋ฆฌ์ŠคํŠธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋…ธ๋“œ์—์„œ๋Š” ๊ฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ polycurve๋กœ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, Circle.ByCenterPointRadius์˜ centerPoint ์ž…๋ ฅ์—์„œ๋Š” "Point" ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ์—์„œ๋Š” ์›์˜ ์ค‘์‹ฌ์ ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ•ญ๋ชฉ์œผ๋กœ ํ•˜๋‚˜์˜ ์ ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด ๋•Œ๋ฌธ์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์—์„œ 5๊ฐœ์˜ ์›์„ ์–ป๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ Dynamo์—์„œ ์ž…๋ ฅ๊ณผ ๋‹ค๋ฅธ ์ ์„ ์ธ์‹ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ ๋…ธ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณด๋‹ค ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆ์ด์‹ฑ

๋ช…ํ™•ํ•œ ์†”๋ฃจ์…˜์ด ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ผ์น˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋…ธ๋“œ๊ฐ€ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ผ์น˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ํฌ๊ฒŒ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์  ์‚ฌ์ด์— ์„  ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค(Line.ByStartPointEndPoint). ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์  ์ขŒํ‘œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋‘ ๊ฐœ์˜ ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๋‹จ ๋ฆฌ์ŠคํŠธ

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ๋” ์ด์ƒ ์ง์„ ์ง€์„ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์ž…๋ ฅ์„ ์ผ๋Œ€์ผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ "์ตœ๋‹จ ๋ฆฌ์ŠคํŠธ" ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Dynamo ๋…ธ๋“œ์˜ ๊ธฐ๋ณธ ๋™์ž‘์ž…๋‹ˆ๋‹ค.

์ตœ์žฅ ๋ฆฌ์ŠคํŠธ

"์ตœ์žฅ ๋ฆฌ์ŠคํŠธ" ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋” ์ด์ƒ ์ง์„ ์ง€์„ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์ž…๋ ฅ์„ ๊ณ„์† ์—ฐ๊ฒฐํ•˜๊ณ  ์š”์†Œ๋ฅผ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์™ธ์ 

๋งˆ์ง€๋ง‰์œผ๋กœ โ€œ์™ธ์ โ€ ๋ฉ”์„œ๋“œ๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์‹œ๋‹ค์‹œํ”ผ ์ด๋Ÿฌํ•œ ์  ์„ธํŠธ ์‚ฌ์ด์— ์„ ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ด์‹ฑ ์˜ต์…˜์€ ๋…ธ๋“œ์˜ ์ค‘์‹ฌ์„ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๊ณ  "๋ ˆ์ด์‹ฑ" ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณต์ œ๋ž€?

ํฌ๋„ ํ•œ ์†ก์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ํฌ๋„ ์ฃผ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๊ฐ ํฌ๋„๋ฅผ ํ•œ ์•Œ์”ฉ ์งœ๋Š” ๋Œ€์‹  ํ•œ ๋ฒˆ์— ์ฐฉ์ฆ™๊ธฐ์— ๋ชจ๋‘ ๋„ฃ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Dynamo์˜ ๋ณต์ œ๋„ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•œ ๋ฒˆ์— ํ•ญ๋ชฉ ํ•˜๋‚˜์—๋งŒ ์ž‘์—…์„ ์ ์šฉํ•˜๋Š” ๋Œ€์‹  Dynamo๋Š” ์ž‘์—…์„ ์ „์ฒด ๋ฆฌ์ŠคํŠธ์— ํ•œ ๋ฒˆ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dynamo ๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ๋กœ ์ž‘์—…ํ•  ๋•Œ ์ด๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์š”์†Œ์— ์ž‘์—…์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์”ฉ ์ˆ˜๋™์œผ๋กœ ๋ฐ˜๋ณตํ•  ํ•„์š”๊ฐ€ ์—†์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‘˜ ์ด์ƒ์ธ ๊ฒฝ์šฐ Dynamo์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ• ๊นŒ์š”?

๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ง๊ต ๋ณต์ œ

๋ถ€์—Œ์—์„œ ๊ณผ์ผ ์ฃผ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. {apple, orange, pear}๋ผ๋Š” ๊ณผ์ผ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๊ณ  ๊ฐ ์ฃผ์Šค์— ์‚ฌ์šฉํ•  ๋ฌผ์˜ ์–‘์ด 1 cup์œผ๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ณผ์ผ์— ๊ฐ™์€ ์–‘์˜ ๋ฌผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ง๊ต ๋ณต์ œ๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Dynamo์—์„œ ์ด๋Š” ๋ฌผ ์ž…๋ ฅ์ด 1์ปต์œผ๋กœ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜๋Š” ๋™์•ˆ ๊ณผ์ผ ๋ฆฌ์ŠคํŠธ๋ฅผ Juice.Maker ๋…ธ๋“œ์˜ ๊ณผ์ผ ์ž…๋ ฅ์— ์ œ๊ณตํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๋…ธ๋“œ๋Š” ๊ฐ ๊ณผ์ผ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ณ ์ •๋œ ์–‘์˜ ๋ฌผ๊ณผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

apple juice with 1 cup of water orange juice with 1 cup of water pear juice with 1 cup of water

๊ฐ ๊ณผ์ผ์€ ๊ฐ™์€ ์–‘์˜ ๋ฌผ๊ณผ ์Œ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

Zip ๋ณต์ œ

Zip ๋ณต์ œ๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์ผ ๋ฆฌ์ŠคํŠธ({apple, orange, pear})์™€ ์„คํƒ• ๋ฆฌ์ŠคํŠธ({2 tbsp, 3 tbsp, 1 tbsp}) ๋‘ ๊ฐœ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ Zip ๋ณต์ œ๋Š” ๊ฐ ๋ฆฌ์ŠคํŠธ์˜ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

apple juice with 2 tablespoons of sugar orange juice with 3 tablespoons of sugar pear juice with 1 tablespoon of sugar

๊ฐ ๊ณผ์ผ์€ ๊ทธ์— ์ƒ์‘ํ•˜๋Š” ์–‘์˜ ์„คํƒ•๊ณผ ์Œ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์—ฐ์Šต

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ๋ ˆ์ด์‹ฑ ์ž‘์—…์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ด ๊ธฐ์ค€ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋‹จ ๋ฆฌ์ŠคํŠธ, ์ตœ์žฅ ๋ฆฌ์ŠคํŠธ ๋ฐ ์™ธ์ ์„ ์ •์˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Point.ByCoordinates์˜ ๋ ˆ์ด์‹ฑ๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ  ์œ„์˜ ๊ทธ๋ž˜ํ”„์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ๋‹จ ๋ฆฌ์ŠคํŠธ

์ตœ๋‹จ ๋ฆฌ์ŠคํŠธ ๋ฅผ ๋ ˆ์ด์‹ฑ ์˜ต์…˜(๊ธฐ๋ณธ ์˜ต์…˜)์œผ๋กœ ์„ ํƒํ•˜๋ฉด 5๊ฐœ์˜ ์ ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ธฐ๋ณธ ๋Œ€๊ฐ์„ ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. 5๊ฐœ์˜ ์ ์€ ๋” ์งง์€ ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด์ด๋ฏ€๋กœ ์ตœ๋‹จ ๋ฆฌ์ŠคํŠธ ๋ ˆ์ด์‹ฑ์€ ํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๋์— ๋„๋‹ฌํ•˜๋ฉด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

์ตœ์žฅ ๋ฆฌ์ŠคํŠธ

๋ ˆ์ด์‹ฑ์„ ์ตœ์žฅ ๋ฆฌ์ŠคํŠธ ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ˆ˜์ง์œผ๋กœ ํ™•์žฅ๋˜๋Š” ๋Œ€๊ฐ์„ ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋… ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, 5๊ฐœ ํ•ญ๋ชฉ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์ด ๋ฐ˜๋ณต๋˜๋ฉด์„œ ๋” ๊ธด ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์™ธ์ 

๋ ˆ์ด์‹ฑ์„ ์™ธ์  ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ฐ ๋ฆฌ์ŠคํŠธ ๊ฐ„์— ๋ชจ๋“  ์กฐํ•ฉ์ด ๋ชจ์—ฌ 5x10๊ฐœ์˜ ์  ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ˜„์žฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ผ๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ , ์œ„ ๊ฐœ๋… ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์™ธ์ ์— ๋Œ€ํ•œ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. polycurve๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ X ๊ฐ’์œผ๋กœ ์ •์˜๋˜์–ด ์ˆ˜์ง์„ ์˜ ํ–‰์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Circle.ByCenterPointRadius์˜ ์ถœ๋ ฅ์€ ์ค‘์‹ฌ์ด ์ ์˜ ์›๋ž˜ ๋ฆฌ์ŠคํŠธ์— ํ•ด๋‹นํ•˜๋Š” ์› 5๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

๋ณต์ œ ๋ฐ ๋ ˆ์ด์‹ฑ ๊ฐ€์ด๋“œ
3KB
Lacing.dyn
Open
์ž…๋ ฅ ์˜ˆ์‹œ
์ž…๋ ฅ ์˜ˆ์‹œ
์ž…๋ ฅ ์˜ˆ์‹œ
์ž…๋ ฅ ์˜ˆ์‹œ

๋ฆฌ์ŠคํŠธ ์ž‘์—…

๋ฆฌ์ŠคํŠธ ์ž‘์—…

์ง€๊ธˆ๊นŒ์ง€ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ–ˆ์œผ๋ฏ€๋กœ ๋ฆฌ์ŠคํŠธ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ•˜๋‚˜์˜ ๊ฒŒ์ž„ ์นด๋“œ ์„ธํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์„ธํŠธ๋Š” ๋ฆฌ์ŠคํŠธ์ด๋ฉฐ, ๊ฐ ์นด๋“œ๋Š” ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์นด๋“œ

์‚ฌ์ง„ ์ถœ์ฒ˜: Christian Gidlรถf

์กฐํšŒ

๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ์–ด๋–ค ์กฐํšŒ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ์š”? ์ด๋Ÿฌํ•œ ์กฐํšŒ์—์„œ๋Š” ๊ธฐ์กด ํŠน์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์„ธํŠธ์— ๋“ค์–ด ์žˆ๋Š” ์นด๋“œ์˜ ์ˆ˜๋Š”? 52.

  • ์ง์„ ์ด๋ฃจ๋Š” ํŒจ์˜ ์ˆ˜๋Š”? 4.

  • ์žฌ๋ฃŒ? ์ข…์ด.

  • ๊ธธ์ด๋Š”? 3.5" ๋˜๋Š” 89mm.

์ž‘์—…

๋ฆฌ์ŠคํŠธ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์ž‘์—…์„ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

  • ์„ธํŠธ๋ฅผ ์„ž์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ’๋ณ„๋กœ ์„ธํŠธ๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ง์„ ์ด๋ฃจ๋Š” ํŒจ๋ณ„๋กœ ์„ธํŠธ๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„ธํŠธ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์— ๋‚˜์—ด๋œ ๋ชจ๋“  ์ž‘์—…์—๋Š” ์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋น„์Šทํ•œ Dynamo ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‹จ์›์—๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ์ ์ธ ์ž‘์—… ์ค‘ ์ผ๋ถ€๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ์Šต

๋ฆฌ์ŠคํŠธ ์ž‘์—…

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ๋‘ ์› ์‚ฌ์ด์— ์„ ์„ ๊ทธ๋ ค ๊ธฐ๋ณธ ๋ฆฌ์ŠคํŠธ ์ž‘์—…์„ ํ‘œํ˜„ํ•˜๋Š” ๊ธฐ์ค€ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ณ  ์•„๋ž˜์˜ ๋ฆฌ์ŠคํŠธ ์ž‘์—…์„ ํ†ตํ•ด ์‹œ๊ฐ์  ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ’์ด 500;์ธ Code Block์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  2. Point.ByCoordinates ๋…ธ๋“œ์˜ x ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  3. ์ด์ „ ๋‹จ๊ณ„์˜ ๋…ธ๋“œ๋ฅผ Plane.ByOriginNormal ๋…ธ๋“œ์˜ ์›์  ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

List.Count

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

List.Count ๋…ธ๋“œ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํ•ด๋‹น ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ์ž‘์—…ํ•  ๊ฒฝ์šฐ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด ๋‚ด์šฉ์€ ๋‹ค์Œ ์„น์…˜์—์„œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. List.Count ๋…ธ๋“œ๋Š” Line.ByStartPointEndPoint ๋…ธ๋“œ์˜ ์„  ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’์€ ์›๋ž˜ Code Block ๋…ธ๋“œ์—์„œ ์ž‘์„ฑ๋œ ์  ์ˆ˜์™€ ์ผ์น˜ํ•˜๋Š” 10์ž…๋‹ˆ๋‹ค.

List.GetItemAtIndex

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

List.GetItemAtIndex๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ํ•ญ๋ชฉ์„ ์กฐํšŒํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  1. ๋จผ์ € Line.ByStartPointEndPoint ๋…ธ๋“œ๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜์—ฌ ํ•ด๋‹น ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋•๋‹ˆ๋‹ค.

  2. List.GetItemAtIndex ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ‰์ธ "0" ๋˜๋Š” ์ค„ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์Šฌ๋ผ์ด๋” ๊ฐ’์„ 0์—์„œ 9 ์‚ฌ์ด๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ List.GetItemAtIndex๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

List.Reverse

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

List.Reverse ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ํ•ญ๋ชฉ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋Œ€๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐ˜์ „๋œ ์ค„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹œ๊ฐํ™”ํ•˜๋ ค๋ฉด Code Block์„ 0..1..#50;์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋” ๋งŽ์€ ์ค„์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

  2. Line.ByStartPointEndPoint ๋…ธ๋“œ๋ฅผ ๋ณต์ œํ•˜๊ณ  Curve.PointAtParameter ๋ฐ ๋‘ ๋ฒˆ์งธ Line.ByStartPointEndPoint ์‚ฌ์ด์— List.Reverse ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

  3. Watch3D ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ๋ด…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์—์„œ๋Š” ๋ฐ˜์ „๋œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์—†๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ์ค„์€ ์ธ์ ‘ํ•œ ์ ์— ์ˆ˜์ง์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ˜์ „๋œ ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ๋ชจ๋“  ์ ์„ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ์— ๋ฐ˜๋Œ€ ์ˆœ์„œ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

List.ShiftIndices

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

List.ShiftIndices๋Š” ํ‹€๊ธฐ ๋˜๋Š” ๋‚˜์„ ํ˜• ํŒจํ„ด์ด๋‚˜ ๊ธฐํƒ€ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ํ•ญ๋ชฉ์„ ์ง€์ •๋œ ์ƒ‰์ธ๋งŒํผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐ˜์ „ ๋ฆฌ์ŠคํŠธ์™€ ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ Curve.PointAtParameter ๋ฐ Line.ByStartPointEndPoint์— List.ShiftIndices๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

  2. Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ 1๊ฐœ ์ƒ‰์ธ๋งŒํผ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ’ "1"์„ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

  3. ๋ณ€๊ฒฝ๋œ ์ •๋„๋Š” ๋ฏธ์„ธํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์  ์„ธํŠธ์— ์—ฐ๊ฒฐํ•  ๋•Œ ํ•˜๋‹จ Watch3D ๋…ธ๋“œ์˜ ๋ชจ๋“  ์ค„์ด 1๊ฐœ ์ƒ‰์ธ๋งŒํผ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Code Block์„ ๋” ํฐ ๊ฐ’์ธ "30" ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋Œ€๊ฐ์„ ์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด๋™์€ ์นด๋ฉ”๋ผ์˜ ํ™์ฑ„์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์—ฌ ์›๋ž˜์˜ ์›ํ†ตํ˜• ํ˜•์‹์—์„œ ํ‹€๊ธฐ๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

List.FilterByBooleanMask

์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

List.FilterByBooleanMask๋Š” ๋ถ€์šธ ๋ฆฌ์ŠคํŠธ๋‚˜ "true" ๋˜๋Š” "false" ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํŠน์ • ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

"true" ๋˜๋Š” "false" ๊ฐ’ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ์ข€ ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ 0..List.Count(list); ๊ตฌ๋ฌธ์œผ๋กœ ํ‘œํ˜„์‹์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Curve.PointAtParameter ๋…ธ๋“œ๋ฅผ list ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. code block๋ก ์žฅ์—์„œ ์ด ์„ค์ •์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์ง€๋งŒ, ์ด ๊ฒฝ์šฐ์—๋Š” ์ฝ”๋“œ ์ค„์—์„œ Curve.PointAtParameter ๋…ธ๋“œ์˜ ๊ฐ ์ƒ‰์ธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  2. %** (modulus)** ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ code block ์˜ ์ถœ๋ ฅ์„ x ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•˜๊ณ  4 ๊ฐ’์„ y ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ƒ‰์ธ ๋ฆฌ์ŠคํŠธ๋ฅผ 4๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Modulus๋Š” ํŒจํ„ด ์ž‘์„ฑ์— ๋งค์šฐ ์œ ์šฉํ•œ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐ’์€ ๊ฐ€๋Šฅํ•œ ๋‚˜๋จธ์ง€ 4๊ฐœ(0, 1, 2, 3)๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํญ์€? 2.5" ๋˜๋Š” 64mm.

๊ฐ ์‚ฌ๋žŒ์—๊ฒŒ ์นด๋“œ๋ฅผ ๋‚˜๋ˆ ์ฃผ๊ธฐ ์œ„ํ•ด ์„ธํŠธ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„ธํŠธ์—์„œ ํŠน์ • ์นด๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Circle.ByPlaneRadius ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๋‹จ๊ณ„์˜ ๋…ธ๋“œ๋ฅผ ํ‰๋ฉด ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ radius์— ๋Œ€ํ•ด ๊ฐ’ 50;์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ž‘์„ฑํ•  ์ฒซ ๋ฒˆ์งธ ์›์ž…๋‹ˆ๋‹ค.

  • Geometry.Translate ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Z ๋ฐฉํ–ฅ์œผ๋กœ ์ตœ๋Œ€ 100๊ฐœ ๋‹จ์œ„๋งŒํผ ์›์„ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  • Code Block ๋…ธ๋“œ์—์„œ ์ฝ”๋“œ ์ค„ 0..1..#10;์„ ์‚ฌ์šฉํ•˜์—ฌ 0๊ณผ 1 ์‚ฌ์ด์˜ 10๊ฐœ ์ˆซ์ž ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ „ ๋‹จ๊ณ„์˜ code block์„ ๋‘ Curve.PointAtParameter ๋…ธ๋“œ์˜ param ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Circle.ByPlaneRadius๋ฅผ ์ตœ์ƒ์œ„ ๋…ธ๋“œ์˜ ๊ณก์„  ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•˜๊ณ  Geometry.Translate๋ฅผ ๊ทธ ์•„๋ž˜ ๋…ธ๋“œ์˜ ๊ณก์„  ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • Line.ByStartPointEndPoint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ Curve.PointAtParameter ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • %** (modulus)** ๋…ธ๋“œ์—์„œ 0 ๊ฐ’์€ ์ƒ‰์ธ์ด 4๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(0, 4, 8 ๋“ฑ). == ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด "0" ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜์—ฌ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š”์ง€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Watch ๋…ธ๋“œ์—์„œ๋Š” _true,false,false,false..._๋กœ ํ‘œ์‹œ๋˜๋Š” true/false ํŒจํ„ด์ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

  • ์ด true/false ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ List.FilterByBooleanMask ๋…ธ๋“œ์˜ ๋งˆ์Šคํฌ ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • Curve.PointAtParameter ๋…ธ๋“œ๋ฅผ List.FilterByBooleanMask์˜ ๊ฐ ๋ฆฌ์ŠคํŠธ ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • Filter.ByBooleanMask์˜ ์ถœ๋ ฅ์€ "in" ๋ฐ _"out"_์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. "In" ์€ ๋งˆ์Šคํฌ ๊ฐ’์ด "true" ์ธ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ณ  "out" ์€ ๋งˆ์Šคํฌ ๊ฐ’์ด "false" ์ธ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Line.ByStartPointEndPoint ๋…ธ๋“œ์˜ "in" ์ถœ๋ ฅ์„ startPoint ๋ฐ endPoint ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•˜์—ฌ ํ•„ํ„ฐ๋ง๋œ ์„  ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Watch3D ๋…ธ๋“œ์—์„œ๋Š” ์ ๋ณด๋‹ค ์„  ์ˆ˜๊ฐ€ ๋” ์ ์€ ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. true ๊ฐ’๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ ๋…ธ๋“œ์˜ 25%๋งŒ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  • 7KB
    List-Operations.dyn
    Open
    8KB
    List-Count.dyn
    Open
    8KB
    List-GetItemAtIndex.dyn
    Open
    8KB
    List-Reverse.dyn
    Open
    8KB
    List-ShiftIndices.dyn
    Open
    11KB
    List-FilterByBooleanMask.dyn
    Open
    ๊ฐœ์ˆ˜
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต

    n์ฐจ์› ๋ฆฌ์ŠคํŠธ

    ํ† ๋ผ๊ตด ๋” ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ๊ณ„์ธต์— ๋” ๋งŽ์€ ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” 3์ฐจ์› ์ด์ƒ์˜ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๋” ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ๋Š” Dynamo์˜ ์ž์ฒด ํ•ญ๋ชฉ์ด๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์ฐจ์›์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์—ฌ๊ธฐ์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์€ ๋Ÿฌ์‹œ์•„ ๋งˆํŠธ๋ฃŒ์‹œ์นด์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ํฌํ•จํ•˜๋Š” ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌ์ŠคํŠธ๋Š” ๊ณ ์œ ํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ๊ณ ์œ ํ•œ ๊ฐ์ฒด๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

    ์ธํ˜•

    ๋Ÿฌ์‹œ์•„ ๋งˆํŠธ๋ฃŒ์‹œ์นด(์‚ฌ์ง„ ์ถœ์ฒ˜: Zeta) ์„ธํŠธ๋Š” n์ฐจ์› ๋ฆฌ์ŠคํŠธ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋„๋ฉด์ธต์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฐ ๋ฆฌ์ŠคํŠธ ์•ˆ์—๋Š” ํ•ญ๋ชฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Dynamo์˜ ๊ฒฝ์šฐ ๊ฐ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ ๋ฆฌ์ŠคํŠธ์˜ ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋ƒ„).

    n์ฐจ์› ๋ฆฌ์ŠคํŠธ๋Š” ์‹œ๊ฐ์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ, ์ด ์žฅ์—์„œ๋Š” 3์ฐจ์› ์ด์ƒ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๋ช‡ ๊ฐ€์ง€ ์—ฐ์Šต์„ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋งคํ•‘ ๋ฐ ์กฐํ•ฉ

    ๋งคํ•‘์€ Dynamo์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์—์„œ ๊ฐ€์žฅ ๋ณต์žกํ•œ ๋ถ€๋ถ„์ด๋ฉฐ, ํŠนํžˆ ๋ฆฌ์ŠคํŠธ์˜ ๋ณต์žกํ•œ ๊ณ„์ธต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ œ๊ณต๋˜๋Š” ์ผ๋ จ์˜ ์—ฐ์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค์ฐจ์›์ด ๋  ๋•Œ ๋งคํ•‘ ๋ฐ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    List.Map ๋ฐ List.Combine์€ ์ด์ „ ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋งˆ์ง€๋ง‰ ์—ฐ์Šต์—์„œ๋Š” ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ด๋Ÿฌํ•œ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์—ฐ์Šต - 2D ๋ฆฌ์ŠคํŠธ - ๊ธฐ๋ณธ

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ์—ฐ์Šต์€ ๊ฐ€์ ธ์˜จ ํ˜•์ƒ์„ ์—ฐ๊ฒฐํ•˜๋Š” 3๊ฐœ์˜ ์—ฐ์Šต ์‹œ๋ฆฌ์ฆˆ ์ค‘ ์ฒซ ๋ฒˆ์งธ์ž…๋‹ˆ๋‹ค. ์ด ์—ฐ์Šต ์‹œ๋ฆฌ์ฆˆ์˜ ๊ฐ ๋ถ€๋ถ„์—์„œ๋Š” ์ ์  ๋” ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

    1. ์—ฐ์Šต ํŒŒ์ผ ํด๋”์— ์žˆ๋Š” .sat ํŒŒ์ผ๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. File Path ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ํŒŒ์ผ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. Geometry.ImportFromSAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜•์ƒ์„ Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์— ๋‘ ๊ฐœ์˜ ํ‘œ๋ฉด์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    ์ด ์—ฐ์Šต์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์œ„ํ•ด ํ‘œ๋ฉด ์ค‘ ํ•˜๋‚˜๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. ์ƒ‰์ธ 1์„ ์„ ํƒํ•˜์—ฌ ์œ„์ชฝ ํ‘œ๋ฉด์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ List.GetItemAtIndex ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    2. Geometry.ImportFromSAT ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ ํ˜•์ƒ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋•๋‹ˆ๋‹ค.

    ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ํ‘œ๋ฉด์„ ์  ๊ทธ๋ฆฌ๋“œ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

    1. Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ๋‘ ์ฝ”๋“œ ์ค„์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. 0..1..#10; 0..1..#5;

    2. Surface.PointAtParameter์—์„œ ๋‘ Code Block ๊ฐ’์„ u ๋ฐ v ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ์˜ ๋ ˆ์ด์‹ฑ ์„ "์™ธ์ " ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    3. ์ถœ๋ ฅ์—๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ๋„ ์ด ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ์œผ๋กœ, ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์˜ ์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ ๋”ฐ๋ผ 10๊ฐœ์˜ ๊ณก์„ ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

    1. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๊ตฌ์„ฑ๋˜๋Š” ๋ฐฉ์‹์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด NurbsCurve.ByPoints๋ฅผ Surface.PointAtParameter์˜ ์ถœ๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    2. ๋” ๋ช…ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ์€ List.GetItemAtIndex ๋…ธ๋“œ์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ๊ธฐ๋ณธ List.Transpose๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์—ด๊ณผ ํ–‰์ด ๋ฐ˜์ „๋ฉ๋‹ˆ๋‹ค.

    2. List.Transpose์˜ ์ถœ๋ ฅ์„ NurbsCurve.ByPoints์— ์—ฐ๊ฒฐํ•˜๋ฉด ์ด์ œ 5๊ฐœ์˜ ๊ณก์„ ์ด ํ‘œ๋ฉด์„ ๊ฐ€๋กœ์งˆ๋Ÿฌ ๊ฐ€๋กœ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    3. ์ด์ „ ๋‹จ๊ณ„์—์„œ NurbsCurve.ByPoints ๋…ธ๋“œ์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๊บผ์„œ ์ด๋ฏธ์ง€์—์„œ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์—ฐ์Šต - 2D ๋ฆฌ์ŠคํŠธ - ๊ณ ๊ธ‰

    ์ข€ ๋” ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „ ์—ฐ์Šต์—์„œ ์ž‘์„ฑํ•œ ๊ณก์„ ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณก์„ ์„ ๋‹ค๋ฅธ ํ‘œ๋ฉด๊ณผ ์—ฐ๊ด€ ์ง“๊ณ  ๊ทธ ์‚ฌ์ด์—์„œ ๋กœํ”„ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋” ๋งŽ์€ ์‹ ๊ฒฝ์„ ์จ์•ผ ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ๋…ผ๋ฆฌ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

    1. ์ด์ „ ์—ฐ์Šต์˜ ๋‹จ๊ณ„๋กœ ์‹œ์ž‘ํ•˜๊ณ  List.GetItemAtIndex ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜จ ํ˜•์ƒ์˜ ์ƒ๋‹จ ํ‘œ๋ฉด์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

    1. Surface.Offset์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ 10 ์”ฉ ๊ฐ„๊ฒฉ์„ ๋„์›๋‹ˆ๋‹ค.

    1. ์ด์ „ ์—ฐ์Šต๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ ๋‘ ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ code block ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 0..1..#10; 0..1..#5;

    2. ์ด๋Ÿฌํ•œ ์ถœ๋ ฅ์„ ๋‘ ๊ฐœ์˜ Surface.PointAtParameter ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๊ฐ ๋ ˆ์ด์‹ฑ ์„ "์™ธ์ " ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜๋Š” ์›๋ž˜ ํ‘œ๋ฉด์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ๋Š” ์˜คํ”„์…‹ ํ‘œ๋ฉด์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ์ด๋Ÿฌํ•œ ํ‘œ๋ฉด์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋•๋‹ˆ๋‹ค.

    2. ์ด์ „ ์—ฐ์Šต์—์„œ์™€ ๊ฐ™์ด ์ถœ๋ ฅ์„ ๋‘ ๊ฐœ์˜ NurbsCurve.ByPoints ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์—๋Š” ๋‘ ํ‘œ๋ฉด์— ํ•ด๋‹นํ•˜๋Š” ๊ณก์„ ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    1. List.Create๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‘ ๊ณก์„  ์„ธํŠธ๋ฅผ ํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. ์ถœ๋ ฅ์—์„œ ๊ฐ NURBS ๊ณก์„  ์—ฐ๊ฒฐ ์„ธํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 10๊ฐœ ํ•ญ๋ชฉ์„ ๊ฐ๊ฐ ํฌํ•จํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ 2๊ฐœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    3. Surface.ByLoft๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ์—์„œ๋Š” ๊ฐ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ๊ณก์„ ์„ ๋กœํ”„ํŠธํ•ฉ๋‹ˆ๋‹ค.

    1. ์ด์ „ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•œ Surface.ByLoft ๋…ธ๋“œ์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋•๋‹ˆ๋‹ค.

    2. List.Transpose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์—ด๊ณผ ํ–‰์„ ๋ฐ˜์ „ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ๋Š” 10๊ฐœ์˜ ๊ณก์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 2๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ 2๊ฐœ์˜ ๊ณก์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 10๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ฐ NURBS ๊ณก์„ ์ด ๋‹ค๋ฅธ ํ‘œ๋ฉด์˜ ์ด์›ƒ ๊ณก์„ ๊ณผ ์—ฐ๊ด€๋ฉ๋‹ˆ๋‹ค.

    3. Surface.ByLoft๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋ธŒ ๊ตฌ์กฐ์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ์œผ๋กœ, ์ด ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ๋Œ€์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. ํ˜ผ๋™์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด, ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ด์ „ ๋‹จ๊ณ„์˜ Surface.ByLoft ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋•๋‹ˆ๋‹ค.

    2. List.Transpose ๋Œ€์‹  List.Combine ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ์—์„œ "์—ฐ๊ฒฐ์ž" ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    3. ์ด ๊ฒฝ์šฐ์—๋Š” List.Create ๋ฅผ "์—ฐ๊ฒฐ์ž" ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ ํ•ญ๋ชฉ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

    1. ๋ช‡ ๋‹จ๊ณ„ ์ด์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์„œ ๋ฆฌ๋ธŒ ๊ตฌ์กฐ์˜ ๊ณก์„  ๋ฐฉํ–ฅ์„ ์ „ํ™˜ํ•˜๋ ค๋ฉด NurbsCurve.ByPoints์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์ „์— List.Transpose๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์—ด๊ณผ ํ–‰์ด ๋ฐ˜์ „๋˜์–ด 5๊ฐœ์˜ ์ˆ˜ํ‰ ๋ฆฌ๋ธŒ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ์—ฐ์Šต - 3D ๋ฆฌ์ŠคํŠธ

    ์ด์ œ ํ•œ ๋‹จ๊ณ„ ๋” ์ง„ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์—ฐ์Šต์—์„œ๋Š” ๊ฐ€์ ธ์˜จ ๋‘ ํ‘œ๋ฉด์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๊ณ  ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋„ ๋™์ผํ•œ ๊ธฐ๋ณธ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์ž‘์—… ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

    ์ด์ „ ์—ฐ์Šต์—์„œ ๊ฐ€์ ธ์˜จ ํŒŒ์ผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    1. ์ด์ „ ์—ฐ์Šต์—์„œ์™€ ๊ฐ™์ด Surface.Offset ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 10 ๋งŒํผ ๊ฐ„๊ฒฉ์„ ๋„์›๋‹ˆ๋‹ค.

    2. ์ถœ๋ ฅ์—์„œ ์˜คํ”„์…‹ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ํ‘œ๋ฉด์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

    1. ์ด์ „ ์—ฐ์Šต๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ ๋‘ ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ Code Block์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 0..1..#20; 0..1..#20;

    2. ์ด๋Ÿฌํ•œ ์ถœ๋ ฅ์„ ๋‘ ๊ฐœ์˜ Surface.PointAtParameter ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๊ฐ ๋ ˆ์ด์‹ฑ์„ "์™ธ์ " ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜๋Š” ์›๋ž˜ ํ‘œ๋ฉด์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ๋Š” ์˜คํ”„์…‹ ํ‘œ๋ฉด์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ์ด์ „ ์—ฐ์Šต์—์„œ์™€ ๊ฐ™์ด ์ถœ๋ ฅ์„ ๋‘ ๊ฐœ์˜ NurbsCurve.ByPoints ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    2. NurbsCurve.ByPoints์˜ ์ถœ๋ ฅ์„ ๋ณด๋ฉด ์ด์ „ ์—ฐ์Šต๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ๋‘ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋ณธ ํ‘œ๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋‹ค๋ฅธ ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    3. ๋˜ํ•œ Surface.PointAtParameter ๋…ธ๋“œ๊ฐ€ ์ข€ ๋” ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    1. ๊ณ„์† ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๊ธฐ์กด ํ‘œ๋ฉด์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋•๋‹ˆ๋‹ค.

    2. List.Create ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ NURBS ๊ณก์„ ์„ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ๋ณ‘ํ•ฉํ•จ์œผ๋กœ์จ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

    3. Surface.ByLoft ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ๊ฐ ์›๋ž˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ž‘์„ฑ๋œ ๋Œ€๋กœ ์ž์ฒด ๋ฆฌ์ŠคํŠธ์— ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ์›๋ž˜ ํ‘œ๋ฉด์˜ ๋ฒ„์ „์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    1. ์ด์ „ ์—ฐ์Šต์—์„œ๋Š” List.Transpose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋ธŒ ๊ตฌ์กฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์ด ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ”๊พธ๊ธฐ๋Š” 2์ฐจ์› ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ๋Š” 3์ฐจ์› ๋ฆฌ์ŠคํŠธ์ด๋ฏ€๋กœ "์—ด ๋ฐ ํ–‰ ๋ฐ˜์ „" ์ž‘์—…์ด ์‰ฝ๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ์ฒด์ด๋ฏ€๋กœ List.Transpose๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฐ˜์ „๋˜์ง€๋งŒ, ๊ณ„์ธต์—์„œ ํ•œ ๋ฆฌ์ŠคํŠธ ์•„๋ž˜์— ์žˆ๋Š” NURBS ๊ณก์„ ์˜ ํ–‰๊ณผ ์—ด์ด ๋ฐ˜์ „๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

    1. ์—ฌ๊ธฐ์„œ๋Š” List.Combine์ด ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” List.Map ๋ฐ List.Combine ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. List.Create ๋ฅผ "์—ฐ๊ฒฐ์ž" ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ž˜ ์ž‘๋™ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

    1. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ์—ฌ์ „ํžˆ ๊ณ„์ธต ๊ตฌ์กฐ ์ค‘ ํ•œ ๋‹จ๊ณ„ ์•„๋ž˜์—์„œ ํ–‰๊ณผ ์—ด์ด ๋ฐ”๋€Œ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด List.Map์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์ž…๋ ฅ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ์ด ์•„๋‹Œ 1๊ฐœ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ , List.Combine๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    2. List.Map์— ์ ์šฉํ•  ํ•จ์ˆ˜๋Š” List.Transpose๋กœ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ ๋ฆฌ์ŠคํŠธ ๋‚ด์˜ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋œ ์—ด๊ณผ ํ–‰์ด ๋ฐ˜์ „๋ฉ๋‹ˆ๋‹ค.

    1. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ์‚ฌ์šฉํ•ด NURBS ๊ณก์„ ์„ ๋กœํ”„ํŠธํ•˜์—ฌ ๋ฆฌ๋ธŒ ๊ตฌ์กฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ ์„ค์ •์ด ์ง€์ •๋œ Surface.Thicken ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜•์ƒ์— ๊นŠ์ด๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. ์ด ๋‘ ๊ตฌ์กฐ๋ฅผ ์ง€์ง€ํ•˜๋Š” ํ‘œ๋ฉด์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์œผ๋ฏ€๋กœ, ๋‹ค๋ฅธ Surface.ByLoft ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด์ „ ๋‹จ๊ณ„์˜ NurbsCurve.ByPoints์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ์ถœ๋ ฅ์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    2. ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ๋ณต์žกํ•ด์ง€๋ฏ€๋กœ ๊ฐ ๋…ธ๋“œ๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๊ณ  '๋ฏธ๋ฆฌ๋ณด๊ธฐ'๋ฅผ ์„ ํƒ์ทจ์†Œํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋…ธ๋“œ์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋„๋ฉด ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ์„ ํƒํ•œ ์ด๋Ÿฌํ•œ ํ‘œ๋ฉด์„ ๋‘๊ป๊ฒŒ ํ•˜๋ฉด ์—ฐ๊ฒฐ์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

    ๊ฐ€์žฅ ํŽธ์•ˆํ•œ ํ”๋“ค์˜์ž๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋กœ ์ค„๋ฌด๋Šฌ ๋ฉค๋ฒ„์˜ ๋ฐฉํ–ฅ์„ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด์ „ ์—ฐ์Šต์—์„œ ํ–‰๊ณผ ์—ด์„ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—๋„ ๋น„์Šทํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. ๊ณ„์ธต ๊ตฌ์กฐ์— ๊ณ„์ธต์ด 1๊ฐœ ๋” ์žˆ์œผ๋ฏ€๋กœ List.Transpose ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ List.Map์„ ์‚ฌ์šฉํ•˜์—ฌ NURBS ๊ณก์„ ์˜ ๋ฐฉํ–ฅ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    1. ๋””๋”คํŒ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ ค๋Š” ๊ฒฝ์šฐ Code Block์„ 0..1..#20; 0..1..#30;์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”๋“ค์˜์ž์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์€ ๋‚ ๋ ตํ•œ ๋ชจ์Šต์ด์—ˆ์œผ๋ฏ€๋กœ, ๋‘ ๋ฒˆ์งธ ๋ชจ๋ธ์€ ์˜คํ”„๋กœ๋“œ์—์„œ ํœด์‹์„ ์ทจํ•˜๊ธฐ ์ ์ ˆํ•œ ์Šคํฌ์ธ  ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

    Surface.ByLoft ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๋‹จ๊ณ„์™€ ๋™์ผํ•œ ํ‘œ๋ฉด์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ–‰๊ณผ ์—ด์„ ๋” ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ํ›จ์”ฌ ๋ณต์žกํ•ด์ง€๋ฉด List.Combine์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

    33KB
    n-Dimensional-Lists.zip
    archive
    Open
    ์—ฐ์Šต

    ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ

    ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ

    ๊ณ„์ธต์— ํ‹ฐ์–ด๋ฅผ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ์˜ˆ์‹œ์—์„œ ์นด๋“œ ๋ฐํฌ๋ฅผ ๊ฐ€์ ธ์™€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐํฌ๊ฐ€ ํฌํ•จ๋œ ์ƒ์ž๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ด์ œ ์ƒ์ž์—๋Š” ๋ฐํฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ณ  ๊ฐ ๋ฐํฌ์—๋Š” ์นด๋“œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์œ ์ถ”ํ•ด ๋ณด์ž๋ฉด ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์—๋Š” ๋™์ „ ๋ฌถ์Œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , ๊ฐ ๋ฌถ์Œ์—๋Š” ํŽ˜๋‹ˆ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋™์ „

    ์‚ฌ์ง„ ์ถœ์ฒ˜: Dori

    ์กฐํšŒ

    ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์กฐํšŒ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? ์ด๋Ÿฌํ•œ ์กฐํšŒ์—์„œ๋Š” ๊ธฐ์กด ํŠน์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    • ๋™์ „์˜ ์œ ํ˜•์€ ๋ช‡ ๊ฐ€์ง€์ž…๋‹ˆ๊นŒ? 2.

    • ๊ฐ ๋™์ „ ์œ ํ˜•์˜ ๊ฐ’์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ? $0.01 ๋ฐ $0.25์ž…๋‹ˆ๋‹ค.

    • ์ฟผํ„ฐ๋Š” ๋ฌด์—‡์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๊นŒ? 75%์˜ ๊ตฌ๋ฆฌ์™€ 25%์˜ ๋‹ˆ์ผˆ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

    • ํŽ˜๋‹ˆ๋Š” ๋ฌด์—‡์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๊นŒ? 97.5%์˜ ์•„์—ฐ๊ณผ 2.5%์˜ ๊ตฌ๋ฆฌ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

    ์ž‘์—…

    ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์ž‘์—…์„ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

    • ํŠน์ • ์ฟผํ„ฐ ๋˜๋Š” ํŽ˜๋‹ˆ์˜ ์Šคํƒ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • ํŠน์ • ์ฟผํ„ฐ ๋˜๋Š” ํŽ˜๋‹ˆ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • ์ฟผํ„ฐ์™€ ํŽ˜๋‹ˆ์˜ ์Šคํƒ์„ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

    • ์Šคํƒ์„ ํ•œ๊บผ๋ฒˆ์— ์„ž์Šต๋‹ˆ๋‹ค.

    ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ, Dynamo์—๋Š” ์œ„์— ๋‚˜์™€ ์žˆ๋Š” ๊ฐ ์ž‘์—…๊ณผ ์œ ์‚ฌํ•œ ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์  ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์ถ”์ƒ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ์œ„์•„๋ž˜๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•˜๋Š” ๊ทœ์น™ ์„ธํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฒน์ณ ์žˆ์–ด ๋ณต์žกํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ๋†€๋ผ์šด ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‹จ์›์—์„œ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ณ  ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ž‘์—…์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์—ฐ์Šต

    ํ•˜ํ–ฅ์‹ ๊ณ„์ธต

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ์„น์…˜์—์„œ ๋ฐฐ์šธ ๊ธฐ๋ณธ ๊ฐœ๋…์€ Dynamo์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž์ฒด์˜ ๋‚ด๋ถ€ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด ํ•˜ํ–ฅ์‹ ๊ณ„์ธต์€ ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์—ผ๋‘์— ๋‘๊ณ  ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Dynamo์—์„œ๋Š” List.GetItemAtIndex์™€ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ํ•˜์œ„ ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋Œ€์‹ , ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ฃผ ๋ฆฌ์ŠคํŠธ์˜ ์ƒ‰์ธ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ํ•ญ๋ชฉ์€ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ˆ์‹œ ์ด๋ฏธ์ง€๋กœ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๋ฒ”์œ„(0..2; 0..3;)๋ฅผ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

    2. ์ด๋Ÿฌํ•œ ๋ฒ”์œ„๋Š” ๋ ˆ์ด์‹ฑ์ด "์™ธ์ " ์œผ๋กœ ์„ค์ •๋œ Point.ByCoordinates ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์  ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์ž‘์„ฑ๋˜๊ณ , ๋˜ํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ถœ๋ ฅ์œผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

    3. Watch ๋…ธ๋“œ์—์„œ๋Š” ๊ฐ ๋ฆฌ์ŠคํŠธ์— 4๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ๋Š” 3๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    List.Flatten

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Flatten์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ๋“  ํ‹ฐ์–ด๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ๊ณ„์ธต์ด ์ž‘์—…์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜์ง€๋งŒ, ์ •๋ณด๊ฐ€ ์ œ๊ฑฐ๋˜๋ฏ€๋กœ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœํ™”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    1. ์ฝ”๋“œ ์ค„์„ ํ•˜๋‚˜ ์‚ฝ์ž…ํ•˜์—ฌ Code Block์˜ ๋ฒ”์œ„(-250..-150..#4;)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    2. code block ์„ Point.ByCoordinates ๋…ธ๋“œ์˜ x ๋ฐ y ์ž…๋ ฅ์— ํ”Œ๋Ÿฌ๊น…ํ•˜๋ฉด ๋ ˆ์ด์‹ฑ์ด "์™ธ์ " ์œผ๋กœ ์„ค์ •๋˜์–ด ์ ์˜ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ๊ฐ€์ ธ์™€์ง‘๋‹ˆ๋‹ค.

    3. Watch ๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    1. polycurve ๋…ธ๋“œ ์•ž์— flatten ์„ ์‚ฝ์ž…ํ•˜์—ฌ ๋ชจ๋“  ์ ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. PolyCurve.ByPoints ๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ณก์„ ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ ์€ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ์— ์žˆ์œผ๋ฏ€๋กœ, ์ „์ฒด ์  ๋ฆฌ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ํ•˜๋‚˜์˜ ์ง€๊ทธ์žฌ๊ทธ polycurve๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    ๋˜ํ•œ ๊ฒฉ๋ฆฌ๋œ ๋ฐ์ดํ„ฐ ํ‹ฐ์–ด๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. List.Flatten ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณ„์ธต ์ƒ๋‹จ์—์„œ ๋‹จ์ˆœํ™”ํ•  ์ง€์ •๋œ ์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํ‹ฐ์–ด๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์›Œํฌํ”Œ๋กœ์šฐ์™€ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜๋„ ์žˆ๋Š” ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฌธ์ œ๋กœ ๊ณ ์‹ฌํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์— ์ •๋ง ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ List.Map์—์„œ flatten ๋…ธ๋“œ๋ฅผ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ List.Map์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    Chop

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ๋ชจ๋ธ๋ง์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, chop์ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. chop์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ค์ •๋œ ํ•ญ๋ชฉ ์ˆ˜์˜ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    chop ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ์ง€์ •๋œ ๋ฆฌ์ŠคํŠธ ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ chop์€ flatten๊ณผ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ํ‹ฐ์–ด๋ฅผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ์•„๋ž˜ ์˜ˆ์ฒ˜๋Ÿผ ํ˜•์ƒ ์ž‘์—…์— ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

    List.Map

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    List.Map/Combine์—์„œ๋Š” ์ง€์ •๋œ ํ•จ์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฆฌ์ŠคํŠธ์— ์ ์šฉํ•˜์ง€๋งŒ ๊ณ„์ธต์˜ ํ•œ ๋‹จ๊ณ„ ์•„๋ž˜์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์กฐํ•ฉ์€ ์ง€์ •๋œ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ์— ํ•ด๋‹นํ•˜๋Š” ์—ฌ๋Ÿฌ ์ž…๋ ฅ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ  ๋งต๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ : ์ด ์—ฐ์Šต์€ ์ด์ „ ๋ฒ„์ „์˜ Dynamo๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. List.Map ๊ธฐ๋Šฅ์˜ ๋Œ€๋ถ€๋ถ„์€ List@Level ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

    ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ๋ฅผ ์œ„ํ•ด ์ด์ „ ์„น์…˜์˜ List.Count ๋…ธ๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    List.Count ๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ List.Map ์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. Code Block์— ๋‹ค์Œ ๋‘ ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. -50..50..#Nx; -50..50..#Ny;

      ์ด ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด code block์—์„œ Nx์™€ Ny์— ๋Œ€ํ•œ ๋‘ ๊ฐœ์˜ ์ž…๋ ฅ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

    2. ๋‘ ๊ฐœ์˜ integer sliders ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Nx ๋ฐ Ny ๊ฐ’์„ Code Block์— ์—ฐ๊ฒฐํ•˜์—ฌ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    1. ์ด์ „ ๋‹จ๊ณ„์—์„œ Watch ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์— List.Count ๋…ธ๋“œ๋ฅผ ๋ถ€์ฐฉํ•ฉ๋‹ˆ๋‹ค.

    2. Watch ๋…ธ๋“œ๋ฅผ List.Count ์ถœ๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    List.Count ๋…ธ๋“œ๋Š” 5 ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” code block์— ์ •์˜๋œ "Nx" ๋ณ€์ˆ˜์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

    • ๋จผ์ €, Point.ByCoordinates ๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์ž…๋ ฅ์œผ๋กœ "x" ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Nx๊ฐ€ 5์ด๊ณ  Ny๊ฐ€ 3์ธ ๊ฒฝ์šฐ ๊ฐ๊ฐ 3๊ฐœ์˜ ํ•ญ๋ชฉ์ด ํฌํ•จ๋œ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ 5๊ฐœ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    • Dynamo์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž์ฒด์˜ ๋‚ด๋ถ€ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•˜๋ฏ€๋กœ List.Count ๋…ธ๋“œ๊ฐ€ ๊ณ„์ธต์˜ ์ฃผ ๋ฆฌ์ŠคํŠธ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๊ฐ’ 5 ๋˜๋Š” ์ฃผ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

    1. List.Map ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์—์„œ ํ•œ ๋‹จ๊ณ„ ๋‚ด๋ ค๊ฐ€ ์ด ๋ ˆ๋ฒจ์—์„œ "ํ•จ์ˆ˜" ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    2. List.Count ๋…ธ๋“œ์— ์ž…๋ ฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ๋Š” ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ณ„์ธต์—์„œ ํ•œ ๋‹จ๊ณ„ ์•„๋ž˜์˜ ๋ชจ๋“  ๊ฐœ๋ณ„ ๋ฆฌ์ŠคํŠธ์— List.Count ๋…ธ๋“œ๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. List.Count์˜ ๋นˆ ์ž…๋ ฅ์€ List.Map์˜ ๋ฆฌ์ŠคํŠธ ์ž…๋ ฅ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

    3. ์ด์ œ List.Count์˜ ๊ฒฐ๊ณผ๋กœ ๊ฐ๊ฐ ๊ฐ’์ด 3์ธ ํ•ญ๋ชฉ 5๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    List.Combine

    ์ฐธ๊ณ : ์ด ์—ฐ์Šต์€ ์ด์ „ ๋ฒ„์ „์˜ Dynamo๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. List.Combine ๊ธฐ๋Šฅ์˜ ๋Œ€๋ถ€๋ถ„์€ List@Level ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

    ์ด ์—ฐ์Šต์—์„œ๋Š” List.Combine์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ๊ฐ์ฒด ๋ฆฌ์ŠคํŠธ์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.

    ๋จผ์ € ๋‘ ์  ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    1. Sequence ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ 10๋‹จ๊ณ„๋กœ ์ฆ๋ถ„ํ•˜๋Š” 10๊ฐœ์˜ ๊ฐ’์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    2. ๊ฒฐ๊ณผ๋ฅผ Point.ByCoordinates ๋…ธ๋“œ์˜ x ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Dynamo์— ์  ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

    3. ๋‘ ๋ฒˆ์งธ Point.ByCoordinates ๋…ธ๋“œ๋ฅผ ์ž‘์—…๊ณต๊ฐ„์— ์ถ”๊ฐ€ํ•˜๊ณ , ๋™์ผํ•œ Sequence ์ถœ๋ ฅ์„ x ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜ Interger Slider๋ฅผ ํ•ด๋‹น y ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ๊ฐ’์„ 31(์ฒซ ๋ฒˆ์งธ ์  ์„ธํŠธ์™€ ๊ฒน์น˜์ง€ ์•Š๋Š” ํ•œ, ์–ด๋–ค ๊ฐ’๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)๋กœ ์„ค์ •ํ•˜์—ฌ ๋‘ ์  ์„ธํŠธ๊ฐ€ ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ์œผ๋กœ List.Combine์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๊ฐ์ฒด์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•œ ์„  ๊ทธ๋ฆฌ๊ธฐ ํ•จ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    1. List.Combine์„ ์ž‘์—…๊ณต๊ฐ„์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋‘ ์  ์„ธํŠธ๋ฅผ list0 ๋ฐ list1 ์ž…๋ ฅ์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    2. Line.ByStartPointEndPoint๋ฅผ List.Combine์— ๋Œ€ํ•œ ์ž…๋ ฅ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์™„๋ฃŒ๋˜๋ฉด ๋‘ ์  ์„ธํŠธ๊ฐ€ Line.ByStartPointEndPoint ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์••์ถ•/์Œ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, Dynamo์—์„œ 10๊ฐœ์˜ ์„ ์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

    n-์ฐจ์› ๋ฆฌ์ŠคํŠธ์˜ ์—ฐ์Šต์„ ์ฐธ์กฐํ•˜์—ฌ List.Combine์„ ์‚ฌ์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

    List@Level

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    List.Map์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒฝ์šฐ List@Level ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋…ธ๋“œ์˜ ์ž…๋ ฅ ํฌํŠธ์—์„œ ๋ฐ”๋กœ ์ž‘์—…ํ•  ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด ๋…ธ๋“œ์˜ ๋ชจ๋“  ์ˆ˜์‹  ์ž…๋ ฅ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋ณด๋‹ค ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฆฌ์ŠคํŠธ์˜ ๋ ˆ๋ฒจ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•  ๋ฆฌ์ŠคํŠธ์˜ ๋ ˆ๋ฒจ๋งŒ ๋…ธ๋“œ์— ์ง€์ •ํ•˜๊ณ  ๋…ธ๋“œ์—์„œ ๋‚˜๋จธ์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ์ด ์—ฐ์Šต์—์„œ๋Š” List@Level ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ ˆ๋ฒจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฉ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐ„๋‹จํ•œ 3D ์  ๊ทธ๋ฆฌ๋“œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. ๊ทธ๋ฆฌ๋“œ๋Š” X, Y, Z์˜ ๋ฒ”์œ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋Š” X ๋ฆฌ์ŠคํŠธ, Y ๋ฆฌ์ŠคํŠธ, Z ๋ฆฌ์ŠคํŠธ์˜ 3๊ฐ€์ง€ ํ‹ฐ์–ด๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    2. ์ด๋Ÿฌํ•œ ํ‹ฐ์–ด๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ ˆ๋ฒจ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋ฒจ์€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒ„๋ธ” ์•„๋ž˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ ์—ด์€ ์œ„ ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ๊ทธ ์•ˆ์—์„œ ์ž‘์—…ํ•  ๋ ˆ๋ฒจ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

    3. ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ์€ ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ "L1"์— ์˜ค๋„๋ก ์—ญ์ˆœ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ทธ๋ž˜ํ”„๊ฐ€ ์—…์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณ„ํš๋Œ€๋กœ ์ž‘๋™ํ• ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. List@Level ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด '>'์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”๋‰ด ๋‚ด์— ๋‘ ๊ฐœ์˜ ํ™•์ธ๋ž€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    2. ๋ ˆ๋ฒจ ์‚ฌ์šฉ - List@Level ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ํด๋ฆญํ•˜๋ฉด ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ž…๋ ฅ ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ์„ ํด๋ฆญํ•˜์—ฌ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ„ ๋˜๋Š” ์•„๋ž˜๋ฅผ ํด๋ฆญํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ ˆ๋ฒจ ์˜ต์…˜์„ ๋น ๋ฅด๊ฒŒ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3. ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ ์œ ์ง€ - ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์ž…๋ ฅ์˜ ๋ ˆ๋ฒจ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์˜์ ์œผ๋กœ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌ์„ฑํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ ๊ตฌ์„ฑ์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ณ  ์ •๋ณด๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๊ฐ„๋‹จํ•œ 3D ๊ทธ๋ฆฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ์„ ํ†ตํ•ด ์ „ํ™˜ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๋ฅผ ์•ก์„ธ์Šคํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ๊ณผ ์ƒ‰์ธ ์กฐํ•ฉ์€ ์›๋ž˜ 3D ์„ธํŠธ์™€ ๋‹ค๋ฅธ ์  ์„ธํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    1. DesignScript์˜ "@L2"์—์„œ๋Š” ๋ ˆ๋ฒจ 2์˜ ๋ฆฌ์ŠคํŠธ๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ‰์ธ 0์ด ์žˆ๋Š” ๋ ˆ๋ฒจ 2์˜ ๋ฆฌ์ŠคํŠธ๋Š” ์ฒซ ๋ฒˆ์งธ Y ์  ์„ธํŠธ๋งŒ ํฌํ•จํ•˜์—ฌ XZ ๊ทธ๋ฆฌ๋“œ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    2. ๋ ˆ๋ฒจ ํ•„ํ„ฐ๋ฅผ "L1"๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ‰์ธ 0์ด ์žˆ๋Š” ๋ ˆ๋ฒจ 1์˜ ๋ฆฌ์ŠคํŠธ๋Š” ๋ชจ๋“  3D ์ ์„ ๋‹จ์ˆœ ๋ฆฌ์ŠคํŠธ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

    3. "L3"์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ ๋ฒˆ์งธ ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ ์ ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ƒ‰์ธ 0์ด ์žˆ๋Š” ๋ ˆ๋ฒจ 3์˜ ๋ฆฌ์ŠคํŠธ์—๋Š” ์ฒซ ๋ฒˆ์งธ Z ์  ์„ธํŠธ๋งŒ ํฌํ•จ๋˜๋ฉฐ XY ๊ทธ๋ฆฌ๋“œ๋งŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

    ์ด ํŠน์ • ์˜ˆ๋Š” List.Map์—์„œ๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, List@Level์—์„œ๋Š” ์ƒํ˜ธ์ž‘์šฉ์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๋…ธ๋“œ ๋ฐ์ดํ„ฐ์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ List.Map ๋ฐ List@Level ๋ฉ”์„œ๋“œ๋ฅผ ์„œ๋กœ ๋น„๊ตํ•˜๋ฉฐ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

    1. ๋‘ ๋ฉ”์„œ๋“œ ๋ชจ๋‘ ๋™์ผํ•œ ์ ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, List@Level ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ผ ๋…ธ๋“œ ๋‚ด์˜ ๋ฐ์ดํ„ฐ ๋„๋ฉด์ธต ๊ฐ„์— ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. List.Map์„ ์‚ฌ์šฉํ•˜์—ฌ ์  ๊ทธ๋ฆฌ๋“œ์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด List.Map๊ณผ ํ•จ๊ป˜ List.GetItemAtIndex ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ณ„๋ฅผ ๋‚ด๋ ค๊ฐ€๋Š” ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ๋งˆ๋‹ค ์ถ”๊ฐ€ List.Map ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ๋ณต์žก๋„์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ ˆ๋ฒจ์˜ ์ •๋ณด์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๊ทธ๋ž˜ํ”„์— ์ƒ๋‹นํ•œ ์–‘์˜ List.Map ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3. ์ด ์˜ˆ์—์„œ๋Š” List.Map ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” List.GetItemAtIndex

    Transpose

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Transpose๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ transpose๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์—ด๊ณผ ํ–‰์„ ๋ฐ˜์ „ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ธฐ๋ณธ ํ–‰๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋‚ด์šฉ์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ณ , ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Transpose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐํ•˜ํ•™์  ๊ด€๊ณ„๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์ด์ „ ์—ฐ์Šต์—์„œ List.Count ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ผ๋ถ€ ํ˜•์ƒ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฐฉ์‹์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. PolyCurve.ByPoints๋ฅผ Point.ByCoordinates์˜ Watch ๋…ธ๋“œ์˜ ์ถœ๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    2. ์ถœ๋ ฅ์—๋Š” 5๊ฐœ์˜ polycurve๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ๋Š” ๊ณก์„ ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Dynamo ๋…ธ๋“œ์—์„œ๋Š” ์  ๋ฆฌ์ŠคํŠธ(๋˜๋Š” ์ด ๊ฒฝ์šฐ ์  ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ)๋ฅผ ์ฐพ๊ณ  ์—ฌ๊ธฐ์—์„œ ๋‹จ์ผ polycurve๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ๊ณก์„ ์œผ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    1. List.Transpose ๋…ธ๋“œ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ณต์žกํ•˜๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ Microsoft Excel์˜ transpose์™€ ๋™์ผํ•œ ๋…ผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์—ด์„ ํ–‰์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    2. ์ถ”์ƒ ๊ฒฐ๊ณผ ํ™•์ธ: transpose๋กœ ์ธํ•ด ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๊ฐ€ ๊ฐ๊ฐ 3๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ๋Š” 5๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ๊ฐ 5๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ๋Š” 3๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

    3. ๊ธฐํ•˜ํ•™์  ๊ฒฐ๊ณผ ํ™•์ธ: PolyCurve.ByPoints๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๋ž˜ ๊ณก์„ ์— ์ˆ˜์ง ๋ฐฉํ–ฅ์œผ๋กœ 3๊ฐœ์˜ polycurve๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ์„ ์œ„ํ•œ Code Block

    Code block ์ค„์ž„์—์„œ๋Š” "[]"์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด List.Create ๋…ธ๋“œ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Code block์— ๋Œ€ํ•ด์„œ๋Š” ์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ‘œํ˜„์‹์ด ํฌํ•จ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ code block์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

    Code Block ์กฐํšŒ

    Code block ์ถ•์•ฝํ˜•์€ "[]"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์›ํ•˜๋Š” ํŠน์ • ํ•ญ๋ชฉ์„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Code blocks์— ๋Œ€ํ•ด์„œ๋Š” ์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ํฌํ•จ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ code block์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

    ์—ฐ์Šต - ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ์‚ฝ์ž…

    ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์˜ˆ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

    ์ „์ฒด ์˜ˆ์‹œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ถ€๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ์—ฐ์Šต์—์„œ๋Š” ์ด์ „ ์—ฐ์Šต์—์„œ ์„ค์ •ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ง๊ด€์ ์ด์ง€๋งŒ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํƒ์ƒ‰ ์‹œ ๋”์šฑ ๊ด€๋ จ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ œ์–ด์ ์„ ์ด๋™ํ•˜์—ฌ ํ‘œ๋ฉด์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ์œ„ ๋…ธ๋“œ์˜ ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ Dynamo ๊ทธ๋ฆฌ๋“œ์— ๊ฑธ์ณ ์žˆ๋Š” ๊ธฐ๋ณธ ํ‘œ๋ฉด์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    1. Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ๋‘ ์ฝ”๋“œ ์ค„์„ ์‚ฝ์ž…ํ•˜๊ณ  Surface.PointAtParameter์˜ u ๋ฐ v ์ž…๋ ฅ์— ๊ฐ๊ฐ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. -50..50..#3; -50..50..#5;

    2. Surface.PointAtParameter์˜ ๋ ˆ์ด์‹ฑ์„ "์™ธ์ " ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ๊ทธ๋ฆฌ๋“œ์˜ ์ค‘์‹ฌ์ ์„ ์กฐํšŒํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์ค‘๊ฐ„ ๋ฆฌ์ŠคํŠธ์—์„œ ์ค‘๊ฐ„ ์ ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ดํ•ด๋˜์‹œ์ฃ ?

    1. ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ์ ์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด Watch ๋…ธ๋“œ ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ ํ•ญ๋ชฉ์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. Code Block์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์ฝ”๋“œ ์ค„์„ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. points[1][2];

    3. Geometry.Translate๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒํ•œ ์ ์„ Z ๋ฐฉํ–ฅ์œผ๋กœ 20 ๋‹จ์œ„์”ฉ ์œ„๋กœ ์ด๋™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    1. List.GetItemAtIndex ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ์ ์˜ ์ค‘๊ฐ„ ํ–‰๋„ ์„ ํƒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ : ์ด์ „ ๋‹จ๊ณ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, points[1]; ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ Code Block์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ง€๊ธˆ๊นŒ์ง€ ์ค‘์‹ฌ์ ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์กฐํšŒํ•˜์—ฌ ์œ„๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด๋™ํ•œ ์ด ์ ์„ ์›๋ž˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋‹ค์‹œ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    1. ๋จผ์ €, ์ด์ „ ๋‹จ๊ณ„์—์„œ ๊ฒฉ๋ฆฌํ•œ ๋ฆฌ์ŠคํŠธ์˜ ํ•ญ๋ชฉ์„ ๋Œ€์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    2. List.ReplaceItemAtIndex๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "2" ์˜ ์ƒ‰์ธ์œผ๋กœ ์ค‘๊ฐ„ ํ•ญ๋ชฉ์„ ์ด๋™๋œ ์ ์— ์—ฐ๊ฒฐ๋œ ๋Œ€์น˜ ํ•ญ๋ชฉ(Geometry.Translate)์œผ๋กœ ๋Œ€์น˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    3. ์ด ์ถœ๋ ฅ์€ ์ด๋™๋œ ์ ์„ ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ํ•ญ๋ชฉ์œผ๋กœ ์ž…๋ ฅํ–ˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    ์ด์ œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ–ˆ์œผ๋ฏ€๋กœ ์ด ๋ฆฌ์ŠคํŠธ๋ฅผ ์›๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ)์— ๋‹ค์‹œ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    1. ๋™์ผํ•œ ๋…ผ๋ฆฌ ๋‹ค์Œ์— List.ReplaceItemAtIndex๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๊ฐ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆ˜์ •๋œ ๋ฆฌ์ŠคํŠธ๋กœ ๋Œ€์น˜ํ•ฉ๋‹ˆ๋‹ค.

    2. ์ด๋Ÿฌํ•œ ๋‘ ๋…ธ๋“œ์˜ ์ƒ‰์ธ์„ ์ •์˜ํ•˜๋Š” Code Block ์€ 1๊ณผ 2์ด๋ฉฐ, Code Block(points[1][2])์˜ ์›๋ž˜ ์กฐํšŒ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

    3. index 1 ์—์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ํƒํ•˜๋ฉด Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์— ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋™๋œ ์ ์„ ์›๋ž˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์ด ์  ์„ธํŠธ์—์„œ ํ‘œ๋ฉด์„ ๋งŒ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ณก์„ ์„ ํ•จ๊ป˜ ๋กœํ”„ํŠธํ•˜์—ฌ ํ‘œ๋ฉด์„ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    1. NurbsCurve.ByPoints ๋…ธ๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ƒˆ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์„ธ ๊ฐœ์˜ NURBS ๊ณก์„ ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

    1. Surface.ByLoft๋ฅผ NurbsCurve.ByPoints์˜ ์ถœ๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ˆ˜์ •๋œ ํ‘œ๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜•์ƒ์˜ ์›๋ž˜ Z ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€ํ™˜ ํ›„ ํ˜•์ƒ ์—…๋ฐ์ดํŠธ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!

    ์ƒ‰์ธ์ด 0์ธ List.GetItemAtIndex๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Dynamo์—์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฆฌ์ŠคํŠธ์™€ ํ•ด๋‹น ์ปจํ…์ธ ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์žˆ๋Š” ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๊ฒ ์ง€๋งŒ, Dynamo์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ•˜ํ–ฅ์‹ ๊ณ„์ธต์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.

  • PolyCurve.ByPoints ๋…ธ๋“œ๋Š” ๊ฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ๊ฐ polycurve๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—๋Š” ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ ํ–‰์„ ๋‚˜ํƒ€๋‚ด๋Š” 4๊ฐœ์˜ polycurve๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • code block์˜ ๊ฐ ์ค„์„ Point.ByCoordinates ๋…ธ๋“œ์˜ ๊ฐ X ๋ฐ Y ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๊ณ  "๋ ˆ์ด์‹ฑ"์„ ์„ ํƒํ•œ ๋‹ค์Œ "์™ธ์ " ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ ์˜ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„๋Š” -50์—์„œ 50 ์‚ฌ์ด๋กœ ์ •์˜ํ–ˆ์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ Dynamo ๊ทธ๋ฆฌ๋“œ์— ๊ฑธ์ณ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Watch ๋…ธ๋“œ์— ์ž‘์„ฑ๋œ ์ ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌ์ŠคํŠธ์—๋Š” ๊ทธ๋ฆฌ๋“œ ์ ์˜ ํ–‰์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • "L4"์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ ๋ฒˆ์งธ ๋ฆฌ์ŠคํŠธ ๋ ˆ๋ฒจ ์ ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ƒ‰์ธ 0์ด ์žˆ๋Š” ๋ ˆ๋ฒจ 4์˜ ๋ฆฌ์ŠคํŠธ์—๋Š” ์ฒซ ๋ฒˆ์งธ X ์  ์„ธํŠธ๋งŒ ํฌํ•จ๋˜๋ฉฐ YZ ๊ทธ๋ฆฌ๋“œ๋งŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
    ๋…ธ๋“œ๊ฐ€ '@L3'์ด ์„ ํƒ๋œ
    List.GetItemAtIndex
    ์™€ ๋™์ผํ•œ ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋™์ผํ•œ ์  ์„ธํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    Watch ๋…ธ๋“œ์— ๊ฐ๊ฐ 5๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ 3๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    4KB
    Top-Down-Hierarchy.dyn
    Open
    4KB
    Flatten.dyn
    Open
    7KB
    Chop.dyn
    Open
    6KB
    Map.dyn
    Open
    List@Level
    List@Level
    17KB
    Listatlevel.dyn
    Open
    6KB
    Transpose.dyn
    Open
    Code Blocks ๋ฐ DesignScript
    Code Block ๋ฐ DesignScript ์žฅ
    26KB
    ReplaceItems.dyn
    Open
    ํ•˜ํ–ฅ์‹
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต
    ์—ฐ์Šต
    List@Level
    List@Level
    Transpose