여기에 어떀뢄이 19년도에 올린 κΈ€ 보고 λ§Œλ“€μ–΄λ΄€μŠ΅λ‹ˆλ‹€.

μœ λ‹ˆν‹° 말고 λ‹€λ₯Έμ—”μ§„μœΌλ‘œ ν•˜μ…¨λ˜λ°, 이 방식을 μœ λ‹ˆν‹°λ‘œ λ§Œλ“ κ²Œ μ•ˆλ³΄μ—¬μ„œ 직접 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.


09a8de21e0dd36eb49bedbb025d2213310839a91c353817e5f0fb07818a6b4dfc0c48504bf1cd6b3e7dad9f300a349024df1370a6e53e26ed8b05e1da232da02e4332e192fd9ae4a8d8385e8cf6368c9800edb185d02454b0fba5d57e4b7179c50e0829c034f646c55ad3be4475365c428d52054a9b7128a1adadd


λͺ‡κ°€μ§€ λ§Œλ“€λ©΄μ„œ μ–΄μƒ‰ν–ˆλ˜ λΆ€λΆ„λ“€ μˆ˜μ •ν•΄λ΄€μŠ΅λ‹ˆλ‹€.

μ•„λž˜μ— μ°Έκ³ ν•œ μ‚¬μ΄νŠΈ λ“€μ–΄κ°€λ³΄μ‹œλ©΄

1. λ°© λžœλ€μƒμ„± ν›„ sizeκ°€ mean*1.25 이상이면 MainRoom 으둜 κ²°μ •

2. Boywer Watson, Kruskal(+ random) 으둜 λ§΅ κ°„ μ—°κ²°

3. 수직, μˆ˜ν‰μœΌλ‘œ 겹치면 1자, μ•„λ‹ˆλ©΄ γ„΄, γ„± λ°©ν–₯ 볡도연결.


κ°„λ‹¨ν•˜κ²Œ λ‚˜νƒ€λ‚΄λ©΄ μ΄μ •λ„μž…λ‹ˆλ‹€.

μœ λ‹ˆν‹°μ—μ„œ μœ„ λ‚΄μš©λ“€μ„ κ΅¬ν˜„ν•˜κ³  느꼈던 μ–΄μƒ‰ν•œμ μ€


1. MainRoom의 κ°œμˆ˜κ°€ λΆˆκ·œμΉ™μ . MainRoom의 개수λ₯Ό λ³€μˆ˜λ‘œ λ§΅ μƒμ„±ν•˜λ„λ‘ λ³€κ²½. (κ°€:μ„Έ λΉ„μœ¨μ΄ 1:2, 2:1 λ„˜μ–΄κ°€λ©΄ μ œμ™Έ)

2. γ„΄, γ„± λ‘κ°œμ˜ 볡도λ₯Ό λ§Œλ“€λ©΄ μ–΄μƒ‰ν•œ κ²½μš°κ°€ 생김. 두 방의 쀑심점을 ν† λŒ€λ‘œ λ‘˜ 쀑 ν•œ λ³΅λ„λ§Œ 선택.

3. λ²½κ³Ό 볡도, 볡도가 κ΅μ°¨ν•˜λŠ” λΆ€λΆ„ λ“± μ—μ„œ λΎ°μ‘±ν•œ λΆ€λΆ„ μ—†μ• κΈ°.

(3λ²ˆμ€ λ°©κ³Ό λ³΅λ„μ˜ 경계λ₯Ό ν—ˆλ¬Όκ³  동꡴같은 λ˜μ „μ„ λ§Œλ“œλ €κ³  λ„£μ—ˆμŠ΅λ‹ˆλ‹€.)


μ•„λž˜λŠ” κ·Έ μ½”λ“œμž…λ‹ˆλ‹€.

μ½”λ“œ 전문이 μ•„λ‹ˆλΌ μ™„μ „νžˆ μ΄ν•΄ν•˜κΈ°λŠ” μ–΄λ €μš°μ‹œκ² μ§€λ§Œ, λ³€μˆ˜/ν•¨μˆ˜λͺ…을 μ΅œλŒ€ν•œ μ§κ΄€μ μœΌλ‘œ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

1. MainRoom을 μƒμœ„ N개만 선택


24b0d121e09c28a8699fe8b115ef046c61f62f469b



크기 순으둜 μ •λ ¬ν•˜κ³  μœ„μ—μ„œλΆ€ν„° κ°œμˆ˜λŒ€λ‘œ λ½‘μ•˜μŠ΅λ‹ˆλ‹€.

μƒˆλ‘œμš΄ λ°°μ—΄ λ§Œλ“œλŠ”λ°©λ²• λ§κ³ λŠ” μƒκ°μ΄μ•ˆλ‚˜μ„œ κ·Έλƒ₯ List둜 ν–ˆμŠ΅λ‹ˆλ‹€.


2. μˆ˜ν‰/수직/γ„±/γ„΄ 볡도λͺ¨μ–‘ κ²°μ •


24b0d121e09c28a8699fe8b115ef046c65f2214b9c


Delaunay Triangulation κ΅¬ν˜„ν• λ•Œ λ§Œλ“  Edge와 Vertexλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

Edge μƒμ„±μžμ—μ„œ 항상 startκ°€ end보닀 항상 μ™Όμͺ½, μ•„λž˜μ— μžˆλ„λ‘Β λ§Œλ“€μ–΄μ„œ 23, 14 사뢄면씩 묢을 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.



3. Smoothing


24b0d121e09c28a8699fe8b115ef046548abff3d


Cellular Automata μž…λ‹ˆλ‹€. 이건 λ‹€λ₯Έ λΈ”λ‘œκ·Έμ—μ„œ 본건데,

λ™κ΅΄μ§€ν˜• λ§Œλ“€λ•Œ 많이 μ‚¬μš©ν•˜κΈΈλž˜ 저도 μ¨λ΄€μŠ΅λ‹ˆλ‹€.Β 



μ–΄μƒ‰ν–ˆλ˜ λΆ€λΆ„ λ³΄μ—¬λ“œλ¦¬κ³ μ‹Άμ€λ° 도쀑에 컀밋을 μ•ˆν•΄μ„œ λ‹€μ‹œ λ³Όμˆ˜κ°€ μ—†λ„€μš”...

κΆκΈˆν•˜μ‹œλ©΄ ν•œλ²ˆΒ ν•΄λ³΄μ‹œλŠ”κ²ƒλ„ 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€.


아직 λΆ€μ‘±ν•œ 뢀뢄은

1. 물리연산을 엔진이 ν•΄μ•ΌλΌμ„œ μ‹œκ°„μ΄ μ’€ κ±Έλ¦Ό (μ΅œμ†Œ 3~4초?)

2. λͺ¨λ“ κ²Œ λ‹€ 랜덀이라 였λ₯˜κ°€ μ—†λŠ”κ±΄μ§€ 아직 μ•ˆλœ¬κ±΄μ§€ λͺ¨λ¦„...


μœ„ μ½”λ“œ 및 μˆ˜μ •ν–ˆλ˜ 방식 λ“±μ—μ„œ 더 λ‚˜μ€ λ°©μ•ˆ μžˆμœΌμ‹œλ©΄ λ§μ”€ν•΄μ£Όμ„Έμš”.



μ°Έκ³ ν–ˆλ˜ μ‚¬μ΄νŠΈμž…λ‹ˆλ‹€.Β 

https://github.com/adnzzzzZ/blog/issues/7