рд▓реАрдк рдореЛрд╢рди рдЖрдзрд╛рд░рд┐рдд рдбрд┐рдЬрд┐рдЯрд▓ рдереЗрд░реЗрдорд┐рди (.NET рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд)

рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдЗрдиреЗрдХреНрдЯ рдХреЗ рдЖрдЧрдорди рдХреЗ рдмрд╛рдж рд╕реЗ, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдВрдд рдЬреБрдиреВрди рдкрдбрд╝рд╛ рд╣реИ - рдпрд╣ рдПрдХ рдЬрд╛рджреБрдИ рднрд╛рд╡рдирд╛ рд╣реИ рдЬрдм рдЖрдкрдиреЗ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ рдерд╛ рд╡рд╣ рдХреБрдЫ рджреВрд░реА рдкрд░ рдорд╛рдирд╡ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ! рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рд╕рдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕ - рд▓реАрдк рдореЛрд╢рди рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓реАрдк рдореЛрд╢рди рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрд┐рдиреЗрдХреНрдЯ рд╣реИ рдЬреЛ рд╣рд╛рдереЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реИред рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ ( рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд), рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд▓реАрдк рдореЛрд╢рди (.NET рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░) рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдЧреАрдд рд╡рд╛рджреНрдпрдпрдВрддреНрд░ - рдереЗрд░реЗрдорд┐рди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╣реИ:



рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд▓реАрдк рдореЛрд╢рди


рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд▓реАрдк рдореЛрд╢рди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ APIs ( рдпрд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрд┐рдд ) рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

рдХрд┐рдиреЗрдХреНрдЯ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓реАрдк рдореЛрд╢рди рдХреИрдорд░реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд 3 рдбреА рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЖрдк .NET рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд▓реАрдк рдореЛрд╢рди рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рдЕрд╡рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ - рд╣рд╛рде рдореЙрдбрд▓ рддрдХ рдкрд╣реБрдВрдЪред

рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ


рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП , рдПрдХ рдЦрд╛рд▓реА WPF рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рд░рдВрдЧреАрди рд╕рд░реНрдХрд▓ рдЬреЛрдбрд╝реЗрдВред рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рд╕реАрдЦрдирд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЙрдВрдЧрд▓реА рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рд░реНрдХрд▓ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рддреЛ, рдореБрдЦреНрдп рдкреГрд╖реНрда (XAML) рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

WPF рдкреЗрдЬ рд▓реЗрдЖрдЙрдЯ MainPage.xaml
<Window x:Class="LeapVoxSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="768" Width="1024" Background="Black"> <Canvas> <Ellipse x:Name="ptr" Fill="Yellow" Height="30" Width="30"/> </Canvas> </Window> 



рд▓реАрдк рдореЛрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реАрдк рдореЛрд╢рди рдПрд╕рдбреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ LeapCSharp.NET4.0.dll рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ - рд▓реАрдк рдПрд╕рдбреАрдХреЗ рдХреЛ рднреА рд▓реАрдк.рдбреЗрд▓ рдФрд░ рд▓реАрдкрд╕реАрдПрд╕рдЖрд░рдкреАред рдбреАрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ LeapSDK \ lib \ x86 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ (рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╣рд╛рдВ рд▓реАрдк рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ) рдвреВрдВрдвреЗрдВ , рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ "рдХрд╛рд░реНрд░рд╡рд╛рдИ = рд╕рд╛рдордЧреНрд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд░реЗрдВ =" рдирдпрд╛ "рдХреЙрдкреА рдХрд░реЗрдВ"ред



рд▓реАрдк рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рдВрдЪрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд╕реНрддреБ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдореБрдЦреНрдп MainWindows.xaml.cs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ:

 Controller Leap = new Controller(); 


рдЕрдм рд▓реАрдк рдореЛрд╢рди рд╣рдореЗрдВ рд╣рд╛рдереЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдлреНрд░реЗрдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдлрд╝реНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдорддрджрд╛рди рдЪрдХреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдбрд┐рд╕реНрдкреИрдЪрд░рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 30 рдмрд╛рд░ рдЖрдЧ рд▓рдЧрд╛рдПрдЧрд╛:

рдирд┐рдпрдВрддреНрд░рдХ рдорддрджрд╛рди рдЪрдХреНрд░ рдХрд╛ рд╕рдВрдЧрдарди
 DispatcherTimer dt = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(1 / 30) }; public MainWindow() { InitializeComponent(); dt.Tick += dt_Tick; dt.Start(); } 


Dt_Tick рд╡рд┐рдзрд┐ рдЧрддрд┐ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рдореВрд▓ рддрд░реНрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧреАред рд╣рдо рд╡рд░реНрддрдорд╛рди рдлрд╝реНрд░реЗрдо (рдлрд╝реНрд░реЗрдо) рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЙрдВрдЧрд▓рд┐рдпрд╛рдВ рдЗрд╕ рдлреНрд░реЗрдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ - рд╣рдо рдкрд╣рд▓реЗ рдПрдХ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирд╕реЗ рдЖрддрд╛ рд╣реИ рдФрд░ рд╕рд░реНрдХрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

 void dt_Tick(object sender, EventArgs e) { var fr = Leap.Frame(); if (fr!=null && fr.Fingers.Count>0) { var f = fr.Fingers[0]; Canvas.SetLeft(ptr, 512 + f.TipPosition.x); Canvas.SetTop(ptr, 768-f.TipPosition.y); } } 


рд╣рдордиреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рд▓реАрдк рдореЛрд╢рди рдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдШреБрдорд╛рдХрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рд░реНрдХрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдирдореВрдирд╛ рдХреЛрдб GitHub рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рд╡рд┐рднрд┐рдиреНрди рдКрдВрдЪрд╛рдЗрдпреЛрдВ рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдзреНрд╡рдирд┐



рд╡рд┐рднрд┐рдиреНрди рдКрдВрдЪрд╛рдЗрдпреЛрдВ рдХреА рдзреНрд╡рдирд┐ рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рд╣рдо NAudio рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ NAudio рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдХреЗ Nuget рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ :

 install-package NAudio 

рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкрд┐рдЪ рдзреНрд╡рдирд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ MSDN рдкрд░ рдЪрд╛рд░реНрд▓реНрд╕ рдкреЗрдЯрдЬрд╝реЛрд▓реНрдб рдХреЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдзреНрд╡рдирд┐ рдХреА рдПрдХ рд╕рд╛рдЗрди рддрд░рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ NAudio рд╡рд┐рдзрд┐ рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрд░рдВрдЧ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХрдИ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВ: рдзреНрд╡рдирд┐ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдзреНрд╡рдирд┐ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдСрдбрд┐рдпреЛ рдмрдлрд░рд┐рдВрдЧ рдХреА рджреЗрд░реА рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрди рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рд╡рд░реНрдЧ рдкреЛрд░реНрдЯ рдПрдВрдЯреЛрдирд╢рд╛рдЗрдирд╡реЙрд╡рд╕рд┐рд▓рд▓реЗрдЯрд░ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзреНрд╡рдирд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡реЗрд╡рдУрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдСрд╕рд┐рд▓реЗрдЯрд░ рдХреА рдПрдХ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП

 WaveOut WaveGen = new WaveOut(); PortamentoSineWaveOscillator Osc = new PortamentoSineWaveOscillator(44100,120); 

рд╣рдо рдкреГрд╖реНрда рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ:

 WaveGen.Init(Osc); WaveGen.Play(); 

рдЕрдм рд╣рдореЗрдВ рдмрд╕ Osc.Pitch рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рдкрд┐рдЪ рддрджрдиреБрд╕рд╛рд░ рдмрджрд▓ рдЬрд╛рдП , рдФрд░ рд╡реЙрд▓реНрдпреВрдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Osc.Amplitude ред рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ - рдкрд┐рдЪ рдХреЗ рд▓рд┐рдПред рдЖрд░рд╛рдорджрд╛рдпрдХ рдзреНрд╡рдирд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 void dt_Tick(object sender, EventArgs e) { var fr = Leap.Frame(); if (fr!=null && fr.Fingers.Count>0) { var f = fr.Fingers[0]; ... //    var p = Math.Abs(f.TipPosition.y / 2); var a = 255 - Math.Abs(f.TipPosition.x); if (p >= 0 && p <= 150) Osc.Pitch = p; if (a >= 0 && a <= 255) Osc.Amplitude = (short)a; } } 

рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдЫреВ рдордВрддрд░


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрдВрджрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдо рд░рд╣реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрдХрд▓ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рдХрдг рдкреНрд░рдгрд╛рд▓реА (рдкрд╛рд░реНрдЯрд┐рдХрд▓ рд╕рд┐рд╕реНрдЯрдо) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ CodeProject рдкрд░ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рдЬреЛ WPF рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрдгреЛрдВ рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рд╣реИред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рд░реНрдХрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдЕрдВрддрд┐рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рдШрд░ рдХрд╛ рдкрд╛рда


рдпрджрд┐ рдЖрдк рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреЗ рд▓рд┐рдП рдЧреБрдВрдЬрд╛рдЗрд╢ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рд╣реИ! рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ), рддреЛ рдореИрдВ рд▓реАрдк рдореЛрд╢рди, рдХрд┐рдиреЗрдХреНрдЯ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЕрддрд┐рд░рд┐рдХреНрдд рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рдЖрдк рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡реАрдбрд┐рдпреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╣реА рдШрдВрдЯреЛрдВ рдореЗрдВ рд▓реАрдк рдореЛрд╢рди рдХреЗ рд╕рд╛рде рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

Source: https://habr.com/ru/post/In214907/


All Articles