
рд╣рдо рдмрд╣реБрдд рд╣реА рдпреБрд╡рд╛, рд▓реЗрдХрд┐рди рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реБрдВрджрд░ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рдд рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЫрд╣ рд╕рд╛рд▓ рдХрд╛ рдмреАрдЯрд╛ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рдЖрдк рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдбрд░ рдирд╣реАрдВ рд╕рдХрддреЗред рдФрд░ рдЬрдм рд╣рд░ рдХреЛрдИ рдпрд╣ рддрд░реНрдХ рджреЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рд╕реЗ рдЕрдиреБрдХреНрд░рдордг рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛, рдЙрддреНрддреЗрдЬрд┐рдд рд╕рдореБрджрд╛рдп рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд░рд╣рд╛ рд╣реИ: рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд╛рдордиреЗ рдЖ рд░рд╣реЗ рд╣реИрдВ, рдкреБрд░рд╛рдиреЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╢реБрд░реВ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рдФрд░ рдЫрд╛рддреНрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЛ рдкрдврд╝рд╛ рд░рд╣реЗ рд╣реИрдВред рддреЛ рдЪрд▓реЛ рдкреАрдЫреЗ рдирд╣реАрдВ рд░рд╣рдирд╛ рд╣реИ! рд╣рдо рдЪрд╛рдп рдХреЛ рдордЬрдмреВрдд рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕ рд░рд╛рдд рдХреЛ рдХреЛрдб рдХрд░реЗрдВрдЧреЗ!
рдХрд╛рдо рдХреА рддреИрдпрд╛рд░реА
рдпрд╣рд╛рдВ рд░реВрд╕реА рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕рдореАрдХреНрд╖рд╛ рд╣реИ, рд╣рдм рдкрд░ рднреА рднрд╛рд╖рд╛ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╣реИ ред рдлрд┐рд░ рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред
рдЙрдиреНрдирдпрди рдХреЗ рдмрд╛рдж, рдЬреВрд▓рд┐рдпрд╛рдкреНрд░реЛ рдореЗрдВ рдЕрдм рдХреЗрд╡рд▓ рдЬреВрдиреЛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЬреБрдкрд┐рдЯрд░ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИ: рд▓реИрдкрдЯреЙрдк рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рд╕рд╛рде рд╣реА рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рддреБрд░рдВрдд рдиреЛрдЯреНрд╕ рдФрд░ рд╕реВрддреНрд░ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рд┐рдкреЛрд░реНрдЯ, рд╕реНрд▓рд╛рдЗрдб рдпрд╛ рдореИрдиреБрдЕрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ред
рд╢рд╛рджреА рдЬреБрдкрд┐рдЯрд░ рдФрд░ рдЬреВрд▓рд┐рдпрд╛ 1.0.1 рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреИрдХреЗрдЬ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рд╕рдлрд▓ рдмреИрдХреЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓реЙрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Plots.jl
- Plots.jl
рдХрд╛ Plots.jl
: Plots.jl
, рд╡рд┐рднрд┐рдиреНрди рдЪрд╛рд░реНрдЯрд┐рдВрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, Plots.jl
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдЖрдкрдХреА рдЖрдЬреНрдЮрд╛рдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреНрд░рд╛рдлрд╝ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рддрд╛ рд╣реИред рдЗрди рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдмреИрдХреЗрдВрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк Plots.jl
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдпрд╣ рднреА рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ Plots.jl
рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝рддрд╛ рд╣реИ!
рдЧреНрд░рд╛рдлрд┐рдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, REPL, рдЬреВрдиреЛ, рдпрд╛ рдЬрдпреБрдкрд░ рдореЗрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:
# Pkg.add("Plots") # 0.7.0 julia>] pkg>add Plots pkg>add GR pkg>add PyPlot pkg>add Gadfly pkg>add PlotlyJS pkg>add UnicodePlots
рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ ред рдореИрдВ рдкреНрд▓реЙрдЯрд▓рд╛рдЗрдЬ () рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ : рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЧрддрд┐ рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╣реИред рдПрдХ рдЬрд╝реВрдо рд╣реИ, рд╡рд┐рдорд╛рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЪрд▓рддреА рд╣реИ, рд╕рд╛рде рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЬреЗрдпреВрдкреАрдЯрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ HTML рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ , рддреЛ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдмрдЪ рдЬрд╛рдПрдВрдЧреАред рддреЛ рдЖрдк рд╕рд╛рдЗрдЯ рдкрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: рднреВрдЦрдВрдб , рдЧреИрдбрд▓реА
рдЕрдВрддрд╣реАрди рдкреНрд░рдореБрдЦ рдкреИрдЯрд░реНрди
рд╣реИрдмрд░ рдкрд░ рдПрдХ рд▓реЗрдЦ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдореЗрдВ: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдмрд┐рдВрджреБ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, XOR рдпрд╛ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдФрд░ рдлрд╝рд┐рд░рд╕реНрдХрд┐рд╕рд╛ рдФрд░ рдСрд░реНрдбрд┐рдиреЗрдЯ рдХреЗ рдмреАрдЪ, рдФрд░ рдлрд┐рд░ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдпрд╛ рдлрд╝рд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЙрддреНрддрд░ рд╣рд╛рдБ рд╣реИ, рддреЛ рдмрд┐рдВрджреБ рдХреЛ рдПрдХ рд░рдВрдЧ рд╕реЗ рднрд░реЗрдВ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рд╕рд╛рде? рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
рдСрдкрд░реЗрд╢рди% рдХреЗ рд▓рд┐рдП using Plots plotlyjs() function eratosphen(n, lst) # ar = [i for i=1:n] ar[1] = 0 for i = 1:n if ar[i] != 0 push!(lst, ar[i]) for j = i:i:n ar[j] = 0 end end end end ertsfn = [] eratosphen(1000, ertsfn) # print(ertsfn) # print( size(ertsfn) ) # -> 168 N = 80 M = 80 W1 = [in( x % y, ertsfn) for x = 1:N, y = 1:M]; W2 = [x % y for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x % y is prime?") p2 = spy(W2, title = "x % y") plot(p1, p2, layout=(2),legend=false)

рдСрдкрд░реЗрд╢рди + рдХреЗ рд▓рд┐рдП W1 = [in( x + y, ertsfn) for x = 1:N, y = 1:M]; W2 = [x + y for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x + y is prime?") p2 = spy(W2, title = "x + y") plot(p1, p2, layout=(2),legend=false)

рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП | W1 = [in( x | y, ertsfn) for x = 1:N, y = 1:M]; W2 = [x | y for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x | y is prime?") p2 = spy(W2, title = "x | y") plot(p1, p2, layout=(2),legend=false)

рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдФрд░ W1 = [in( x & y, ertsfn) for x = 1:N, y = 1:M]; W2 = [x & y for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x & y is prime?") p2 = spy(W2, title = "x & y") plot(p1, p2, layout=(2),legend=false)

рдСрдкрд░реЗрд╢рди рдПрдХреНрд╕реЛрд░ рдХреЗ рд▓рд┐рдП W1 = [in( xor(x, y), ertsfn) for x = 1:N, y = 1:M]; W2 = [xor(x, y) for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x xor y is prime?") p2 = spy(W2, title = "x xor y") plot(p1, p2, layout=(2),legend=false)

рдФрд░ рдЕрдм рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдПрдЖрдк рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
function fib(n) a = 0 b = 1 for i = 1:n a, b = b, a + b end return a end fbncc = fib.( [i for i=1:10] )
рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ ( рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

matr_fib = n -> [1 1; 1 0]^(n-1) # , n-1 mfbnc = [ matr_fib( i )[1,1] for i=1:17]; # 1,1 n- N = 100 M = N W1 = [in( x % y, mfbnc) for x = 1:N, y = 1:M]; W2 = [in( x | y, mfbnc) for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x % y тИИ fibonacci?") p2 = spy(W2, title = "x | y тИИ fibonacci?") plot(p1, p2, layout=(2),legend=false)

W1 = [in( xor(x, y), mfbnc) for x = 1:N, y = 1:M]; W2 = [in( x & y, mfbnc) for x = 1:N, y = 1:M]; p1 = spy(W1, title = "x xor y тИИ fibonacci?") p2 = spy(W2, title = "x & y тИИ fibonacci?") plot(p1, p2, layout=(2),legend=false)

рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реАрдзреЗ рдПрдХ рдЖрдХреГрддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
[T] = [T тАЩ] [R] [RтАЩ] [R] ^ {- рез} [T тАЩ] ^ {{рез}

рдЬрд╣рд╛рдВ [рдЯреА '], [рдЖрд░] рдФрд░ [рдЖрд░ тАЩ], рдХреНрд░рдорд╢рдГ, рд╡рд┐рд╕реНрдерд╛рдкрди, рд░реЛрдЯреЗрд╢рди рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдореИрдЯреНрд░рд┐рдХреНрд╕ред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЖрдЗрдП рд╣рдо рдСрдлрд╕реЗрдЯ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ - рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (x, y) рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП, x рджреНрд╡рд╛рд░рд╛ m рджреНрд╡рд╛рд░рд╛ x рдФрд░ рдЦреЗрд▓ рджреНрд╡рд╛рд░рд╛ n рдХреЛ рдкрд░рд┐рд╡рд░реНрддрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

рдпреЗ рдореИрдЯреНрд░реАрдХ рд╡рд┐рднрд┐рдиреНрди рдмрд╣реБрднреБрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рддрд╣рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрдХрд╛рдИ рдХреЙрд▓рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ [T]:
- рдмрд╣реБрднреБрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓ рдореЗрдВ рд░реЗрдЦрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдШреБрдорд╛рддрд╛ рд╣реИ
- рдПрдХреНрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
- рд░рд┐рд╡рд░реНрд╕ рд░реЛрдЯреЗрд╢рди рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж
рдкреБрд╕реНрддрдХ рд░реЛрдЬрд░реНрд╕ рдбреАред, рдПрдбрдореНрд╕ рдЬреЗред рдореИрдердореЗрдЯрд┐рдХрд▓ рдлрд╝рд╛рдЙрдВрдбреЗрд╢рди рдСрдлрд╝ рдХрдВрдкреНрдпреВрдЯрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЕрдм рдЗрд╕реЗ рдХреЛрдб рдХрд░реЗрдВ!
using Plots plotlyjs() f = x -> 0.4x + 2 # # X = [2 4 2 2]' Y = [4 6 6 4]' xs = [-2; 7] # ys = f(xs) inptmtrx = [ XY ones( size(X, 1), 1 ) ] # m = 0 n = -f(0) # Y displacement = [1 0 0; 0 1 0; mn 1] a = (ys[2]-ys[1]) / (xs[2]-xs[1]) # ╬╕ = -atan(a) rotation = [cos(╬╕) sin(╬╕) 0; -sin(╬╕) cos(╬╕) 0; 0 0 1] reflection = [1 0 0; 0 -1 0; 0 0 1] T = displacement * rotation * reflection * rotation^(-1) * displacement^(-1) # outptmtrx = inptmtrx * T plot( X, Y) plot!( xs, ys ) plot!( outptmtrx[:,1], outptmtrx[:,2] )

рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп: рдпрджрд┐ рдЖрдк рдЧреНрд░реАрдХ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ
function y=f(x,t) y=0.4*x + 2 endfunction,
рдЪреВрдВрдХрд┐ рдХреЛрд╖реНрдардХ [] рдкрд░ () , рдФрд░ plot( X, Y, xs, ys, trianglenew(:,1), trianglenew(:,2) )
рдкрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЛ рдлреНрд░реЗрдо рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдпрд╣ рдХреЛрдб рд╕рд┐рд▓рд╛рдм рдореЗрдВ рдХрд╛рдлреА рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреНрд░рд┐-рдЖрдпрд╛рдореА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкреИрдХреЗрдЬ рддреАрди-рдЖрдпрд╛рдореА рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдХреА рдХреЗ рдмрд▓реНрдХрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЯреВрд▓ рдХрд╛ рдЕрд▓рдЧ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреЛ GLFW рдФрд░ GLAbstraction рд╕рдВрдХреБрд▓ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ OpenGL рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдорд╛рдХреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред рд╣рдо рдЙрд╕рдХреЗ рдЕрдиреБрдореЛрджрди рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ
рд╕реНрдкреЙрдЗрд▓рд░ using Makie N = 51 x = linspace(-2, 2, N) y = x z = (-x .* exp.(-x .^ 2 .- (y') .^ 2)) .* 4 scene = wireframe(x, y, z) xm, ym, zm = minimum(scene.limits[]) scene = surface!(scene, x, y, z) contour!(scene, x, y, z, levels = 15, linewidth = 2, transformation = (:xy, zm)) scene

wireframe(Makie.loadasset("cat.obj"))

using FileIO scene = Scene(resolution = (500, 500)) catmesh = FileIO.load(Makie.assetpath("cat.obj"), GLNormalUVMesh) mesh(catmesh, color = Makie.loadasset("diffusemap.tga"))

x = Makie.loadasset("cat.obj") mesh(x, color = :black) pos = map(x.vertices, x.normals) do p, n p => p .+ (normalize(n) .* 0.05f0) end linesegments!(pos, color = :blue)

рдпрд╣реА рд╕рдм рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╣реИред рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛, рдПрдиреАрдореЗрд╢рди, 3 рдбреА, рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдпрд╛ рд╕рд░рд▓ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рддреЗрдЬреА рд╕реЗ рдирд┐рд░реНрдорд╛рдг - рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕реНрд╡рд╛рдж рдФрд░ рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ рд╕реАрдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрднреНрдпрд╛рд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ!
UPD: рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕реВрдЪрд┐рдпрд╛рдБ рдЬреБрдкрд┐рдЯрд░ рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ 0.6.4 рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рднреВрдЦрдВрдб рдореЗрдЯрд╛-рдкреИрдХреЗрдЬ рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдпрд╛ рддреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдЬрд╛рд╕реВрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
julia> using GR julia> Z = [x | y for x = 1:40, y = 1:40]; julia> heatmap(Z)