[.Net] WPF NodeNetwork ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํน์ง ์์๋ณด๊ธฐ
์๊ฐ
์ง๋ ํฌ์คํ ์์ Node Editor UI์ ๋ํด ์๊ฐ๋ฅผ ํ์์ต๋๋ค. Node Editor๋ ๋ชจ๋ ๋จ์์ธ ๋ ธ๋(Node)๋ฅผ ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ํธ์ง ๊ธฐ๋ฅ์ ๋๋ค.
[.Net] Node Editor UI ํ๋ ์์ํฌ ์๊ฐ - NodeNetwork
์ด๋ฒ ํฌ์คํ ์์๋ Node Editor UI ํ๋ ์์ํฌ ์ค ํ๋์ธ WPF Node Network๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋ณธ๋ฌธ์ ๋ด์ฉ์ NodeNetwork Documentation์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค.
https://wouterdek.me/NodeNetwork/doc
NodeNetwork ํน์ง
์ง๋ ํฌ์คํ ์์ ์๊ฐํ๋ ๋ด์ฉ ์ค ์ค์ํ ํน์ง์ ๋ค์ ๋ณด๊ฒ ์ต๋๋ค.
- .Net Framework 4.7.2์ .Net Core 3.1 ์ด์
- WPF ๊ธฐ๋ฐ
- MVVM ๊ตฌ์กฐ๋ก ๋ํํ ์ปจํธ๋กค ๊ตฌ์ถ
- ํจ๋(panning), ํ๋/์ถ์(zooming) ์ง์
- ๋ ์ด์์ ์๋ ์ ์ด
- ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ (์์, ํฌํธ ๋ชจ์, ์ปจํธ๋กค ์ถ๊ฐ, ๊ทธ๋ฃนํ ๋ฑ)
- ์ํ์น(Apache) 2.0 ๋ผ์ด์ ์ค
ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฝ๊ฒ๋ WPF์์๋ง ์ ๊ณต๋ฉ๋๋ค. ์ ๋ WPF๊ฐ ์ต์ํ์ง ์์ WinForm์์ ์ฌ์ฉํ๊ณ ์ถ์์ง๋ง ์ง์๋์ง ์๋๊ตฐ์. ๋ง์ฝ WPF ๋ชจ๋์ WinForm์ ๋๊ณ ์ฌ ์ ์๋ค๋ฉด ๊ฐ๋ฅํ ์ ์๋ค๊ณค ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ MVVM(Model-View-ViewModel) ํจํด์ ์ฌ์ฉํฉ๋๋ค. MVVM ํจํด์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ๋ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ์ด๋ ค์์ด ์์ต๋๋ค. MVVM ํจํด์ ๋ํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
https://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explained
NodeNetwork ๊ธฐ๋ณธ ๊ฐ๋
๋ณธ๋ฌธ์ ์ค๋ช ์ ์ดํดํ๊ธฐ ์ํด ์ฐ์ GUI ์ปจํธ๋กค์ ์ฉ์ด๋ฅผ ์์งํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋คํธ์ํฌ(Network)
- ๋
ธ๋(Node)
- ์
๋ ฅ(Input)
- ์๋ํฐ(Editor, ์ ์ด ํ๋ผ๋ฏธํฐ)
- ํฌํธ(Port, ์ฐ๊ฒฐ ์ง์ )
- ์ถ๋ ฅ
- Editor
- Port
- ์
๋ ฅ(Input)
- ์ฐ๊ฒฐ(Connection)
- ๋ณด๋ฅ ์ค์ธ ์ฐ๊ฒฐ(Pending connection)
- ์ ๋จ(Cutline)
- ์์ญ ์ ํ(Selection rectanlge)
- ๋
ธ๋(Node)
๊ฐ ์ฉ์ด๊ฐ ๋ฌด์์ ๋ํ๋ด๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
Node components
๋ ธ๋๋ ํจ์(function)์ด๋ฉฐ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ(end point)์ ๋๋๊ทธํ ์ ์๋ ์ปจํ ์ด๋์ ๋๋ค. ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฐ๊ฒฐ์ ์์ฑํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํฌํธ(port)๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ ๋ ฅ์ ๋ ธ๋์ ๋์์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋ํฐ(editor)๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์ด์ฐ ๋ณด๋ฉด ์๋ํฐ๋ ์ ์ดํ ์ ์๋ ํ๋ผ๋ฏธํฐ์ ๋๋ค. ์ถ๋ ฅ์๋ ์๋ํฐ๋ฅผ ํฌํจํ ์ ์์ผ๋ ์ ๋ ฅ์์ ์ถ๋ ฅ์ ๊ฒฐ์ ์ง๋ ๊ฒ์ด ๋ ๋ซ์ต๋๋ค. ๋ง๋ก ์ค๋ช ํ์ง๋ง, ์๋์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๋ฐ๋ก ์ดํด๊ฐ ๋ ๊ฒ๋๋ค.
Connections
์ฐ๊ฒฐ(connection)์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ผ๋ก ๊ตฌ์ฑ๋ ํํ์ ๋๋ค. ์ฐ๊ฒฐ์ ์๋ก ๋ค๋ฅธ ๋ ธ๋ ๊ฐ์๋ง ํ์ฑ๋ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ์ ๋ ฅ์๋ 1๊ฐ์ ์ฐ๊ฒฐ๋ง ์์ ์ ์์ง๋ง ์ถ๋ ฅ์๋ ๋ฌด์ ํ์ผ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ค์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ณด๋ฅ ์ค์ธ ์ฐ๊ฒฐ(pending connection)์ ํฌํธ๋ฅผ ํด๋ฆญํ์ฌ ๋๋๊ทธ ์ค์ธ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์์ง ์ฐ๊ฒฐ์ด ๊ฒฐ์ ๋์ง ์์ ๊ฒ์ด์ฃ .
Cutline
์ ๋จ(cutline)์ ์ค๋ฅธ์ชฝ ๋ง์ฐ์ค ๋ฒํผ์ ํด๋ฆญํ๊ณ ๋๋๊ทธํ๋ฉด ๋ํ๋๋ ์ ์ ๋๋ค. ์ด ์ ๊ณผ ๊ต์ฐจ๋๋ ๋ชจ๋ ์ฐ๊ฒฐ์ด ๊ฐ์กฐ ํ์๋๋ฉฐ ๋ง์ฐ์ค ๋ฒํผ์ ๋ผ๋ฉด ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค.
Selection rectangle
์ฌ์ฉ์๊ฐ Shift ํค๋ฅผ ๋๋ฅธ ์ํ์์ ์ผ์ชฝ ๋ง์ฐ์ค ๋ฒํผ์ ํด๋ฆญํ๊ณ ๋๋๊ทธํ๋ฉด ์ฌ๊ฐํ์ด ํ์๋ฉ๋๋ค. ์ด ์ฌ๊ฐํ์ ํฌํจ๋๊ฑฐ๋ ๊ต์ฐจํ๋ ๋ชจ๋ ๋ ธ๋๊ฐ ์ ํ๋๊ณ , ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ ์ ํ ํด์ ๋ฉ๋๋ค.
'Programming > .Net' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[.Net] C# WinForm์์ ScottPlot์ผ๋ก ๊ทธ๋ํ, ์ฐจํธ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ
[.Net] C# WinForm์์ ScottPlot์ผ๋ก ๊ทธ๋ํ, ์ฐจํธ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ
2022.01.09 -
[.Net] WPF NodeNetwork ํ๋ก์ ํธ ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ Hello World ๋ง๋ค๊ธฐ(์์ ํฌํจ)
[.Net] WPF NodeNetwork ํ๋ก์ ํธ ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ Hello World ๋ง๋ค๊ธฐ(์์ ํฌํจ)
2021.12.27 -
[.Net] Node Editor UI ํ๋ ์์ํฌ ์๊ฐ - NodeNetwork
[.Net] Node Editor UI ํ๋ ์์ํฌ ์๊ฐ - NodeNetwork
2021.11.28 -
[.Net] C# WinForm์์ ์ฌ๋ผ์ด๋ฉ ๋ฉ๋ด(Sliding menu), ์ฌ์ด๋๋ฐ(Sidebar) ์ฝ๊ฒ ๋ง๋ค๊ธฐ (์์ ํฌํจ)
[.Net] C# WinForm์์ ์ฌ๋ผ์ด๋ฉ ๋ฉ๋ด(Sliding menu), ์ฌ์ด๋๋ฐ(Sidebar) ์ฝ๊ฒ ๋ง๋ค๊ธฐ (์์ ํฌํจ)
2021.09.26