裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Julia で円をモチーフにした格子模様を描く(2)

2021年08月13日 | ブログラミング

Julia で円をモチーフにした格子模様を描く(2)

plotter.jl を includehttps://blog.goo.ne.jp/r-de-r/e/bd71a52a09801335d56f7c47d879bfe3

include("plotter.jl")

function en2(nx=6, ny=5; r=1, lwd=2, width=600, height=400)
    plotbegin(w=width, h=height)
    nx += 3
    ny += 2
    x1, y1, x2, y2 = 1.5r*√3, r, (nx + 0.5)r * √3, (1.5ny + 0.5)r
    println("(width, height) = ($(x2 - x1), $(y2 - y1))")
    plotlimit(x1, y1, x2, y2)
    plotbox(x1, y1, x2, y2, col=:gray, fcol=:gray)
    for y = 1:ny
        for x = 1:nx
            plotcircle((x + (y % 2)/2)r*√3, y * 1.5r, r, lwd=lwd, col=:cornsilk)
        end
    end
    plotend()
end

en2(5, 4, width=520, height=425)
savefig("en2.png")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Julia で円をモチーフにした格子模様を描く(1)

2021年08月13日 | ブログラミング

Julia で円をモチーフにした格子模様を描く(1)

plotter.jl を include
https://blog.goo.ne.jp/r-de-r/e/bd71a52a09801335d56f7c47d879bfe3

lwd を適当(適切)に変えてください。

include("plotter.jl")

function en(nx=6, ny=5; r=1, lwd=2, width=600, height=360)
    x1, y1, x2, y2 = 4r, r, 5r + (2nx+2)r -3r, (2ny+1)r
    println("(width, height) = ($(x2 - x1), $(y2 - y1))")
    plotbegin(w=width, h=height)
    plotlimit(x1, y1, x2, y2)
    plotbox(x1, y1, x2, y2, col=:gray, fcol=:gray)
    for y = 1:2ny+1
        for x = 1:nx+1
          plotcircle((2x+2 + (y % 2))r, y*r, 0.94r, lwd=lwd, col=:cornsilk)
        end
    end
    plotend()
end

en(10, 6, lwd=3, width=600, height=360)
savefig("en1.png")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Julia で正方形基準の格子模様を描く(3)

2021年08月13日 | ブログラミング

Julia で正方形基準の格子模様を描く(3)

plotter.jl を include
https://blog.goo.ne.jp/r-de-r/e/bd71a52a09801335d56f7c47d879bfe3

include("plotter.jl")

function asanoha7(nx=6, ny=5; a=1, width=600, height=400)
    function unit(x, y, a)
        xy = [0 0; 4a 0; 4a 4a; 0 4a; 0 0; 3a a; 4a 4a; a 3a; 0 0; 4a 4a; NaN NaN;
                  0 4a; a 3a; NaN NaN; 4a 0; 3a a]
        xs = vcat(xy[:, 1], xy[:, 1], -xy[:, 1], -xy[:, 1])
        ys = vcat(xy[:, 2], -xy[:, 2], xy[:, 2], -xy[:, 2])
        plotline(4a*x - 2a .+ xs, 4a*y - 2a .+ ys, lwd=2, col=:bisque)
    end
    plotbegin(w=width, h=height)
    x1, y1, x2, y2 = 0, 0, 4a*nx, 4a*ny
    println("(width, height) = ($(x2 - x1), $(y2 - y1))")
    plotlimit(x1, y1, x2, y2)
    plotbox(x1, y1, x2, y2, col=:gray, fcol=:gray)
    for x = 1:nx
        for y = 1:ny
            unit(x, y, a)
        end
    end
    plotend()
end

asanoha7(6, 4, width=480, height=320)
savefig("fig7.png")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Julia で正方形基準の格子模様を描く(2)

2021年08月13日 | ブログラミング

Julia で正方形基準の格子模様を描く(2)

plotter.jl を include
https://blog.goo.ne.jp/r-de-r/e/bd71a52a09801335d56f7c47d879bfe3

include("plotter.jl")

function asanoha6(nx=6, ny=5; a=1, width=600, height=400)
    function unit(x, y, a)
        xy = [0 0; 4a 0; 4a 4a; 0 4a; 0 0; 3a a; 4a 4a; a 3a; 0 0; 4a 4a; NaN NaN;
                  0 4a; a 3a; NaN NaN; 4a 0; 3a a]
        xs = vcat(xy[:, 1], xy[:, 1], -xy[:, 1], -xy[:, 1])
        ys = vcat(xy[:, 2], -xy[:, 2], xy[:, 2], -xy[:, 2])
        plotline(8a*x -4a .+ xs, 8a*y - 4a .+ ys, lwd=2, col=:bisque)
    end
    plotbegin(w=width, h=height)
    x1, y1, x2, y2 = 0, 0, 8a*nx, 8a*ny
    println("(width, height) = ($(x2 - x1), $(y2 - y1))")
    plotlimit(x1, y1, x2, y2)
    plotbox(x1, y1, x2, y2, col=:gray, fcol=:gray)
    for x = 1:nx
        for y = 1:ny
            unit(x, y, a)
        end
    end
    plotend()
end

asanoha6(6, 4, width=480, height=320)
savefig("fig6.png")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Julia で正方形基準の格子模様を描く(1)

2021年08月13日 | ブログラミング

Julia で正方形基準の格子模様を描く(1)

plotter.jl を include
https://blog.goo.ne.jp/r-de-r/e/bd71a52a09801335d56f7c47d879bfe3

include("plotter.jl")

function asanoha5(nx=6, ny=5; a=1, width=600, height=400)
    function unit(x, y, a)
        xy = [0 0; 4a 0; 4a 4a; 0 4a; 0 0]
        if x % 2 != y % 2
            xy = vcat(xy, [3a a; 4a 4a; a 3a; 0 0; 4a 4a; NaN NaN;
                  0 4a; a 3a; NaN NaN; 4a 0; 3a a])
        end
        xs = vcat(xy[:, 1], xy[:, 1], -xy[:, 1], -xy[:, 1])
        ys = vcat(xy[:, 2], -xy[:, 2], xy[:, 2], -xy[:, 2])
        plotline(8a*x-4a .+ xs, 8a*y-4a .+ ys, lwd=2, col=:bisque)
    end
    plotbegin(w=width, h=height)
    x1, y1, x2, y2 = 0, 0, 8a*nx, 8a*ny
    println("(width, height) = ($(x2 - x1), $(y2 - y1))")
    plotlimit(x1, y1, x2, y2)
    plotbox(x1, y1, x2, y2, col=:gray, fcol=:gray)
    for x = 1:nx
        for y = 1:ny
            unit(x, y, a)
        end
    end
    plotend()
end

asanoha5(6, 4, width=480, height=320)
savefig("fig5.png")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Julia で麻の葉格子模様を描く(2)

2021年08月13日 | ブログラミング

Julia で麻の葉格子模様を描く(2)

plotter.jl を include
https://blog.goo.ne.jp/r-de-r/e/bd71a52a09801335d56f7c47d879bfe3

include("plotter.js")

function asanoha4(nx=6, ny=5; r=1, width=600, height=400)

    a = r * sqrt(3) / 2
    b = r / 2
    c = a / 3
    d = (a - c) / 2
    e = d/sqrt(3)
    f = a - d
    g = b-e
    h = b - 2e
    function unit(x, y)
        xs = [-a, -a, -c, 0, -a+c, -a, 0, 0, NaN,
            a,  a,  c, 0,  a-c,  a, 0, 0, NaN,
            -a, -a, -c, 0, -a+c, -a, 0, 0, NaN,
            a,  a,  c, 0,  a-c,  a, 0, 0, NaN,
            d, 0,  -d, -d, 0, d, d, NaN,
            f, f, a, NaN, -f, -f, -a, NaN, f, f, a, NaN, -f, -f, -a]
        ys = [0,  b,  b, 0, 0,  b, 0,  b, NaN,
            0,  b,  b, 0, 0,  b, 0,  b, NaN,
            0, -b, -b, 0, 0, -b, 0, -b, NaN,
            0, -b, -b, 0, 0, -b, 0, -b, NaN,
            e, 2e, e, -e, -2e, -e, e, NaN,
            b, g, h, NaN, b, g, h, NaN, -b, -g, -h, NaN, -b, -g, -h]
        plotline(x .+ xs, y .+ ys, lwd=2, col=:bisque)
        plotline(x .+ [-a, a, NaN, -a, a], y .+ [b, -b, NaN, -b, b], lwd=4, col=:bisque)
    end
    plotbegin(w=width, h=height)
    x1, y1, x2, y2 = a, b, 2(nx + 0.5) * a, (2ny + 1) * b
    println("(width, height) = ($(x2 - x1), $(y2 - y1))")
    plotlimit(x1, y1, x2, y2)
    plotbox(x1, y1, x2, y2, col=:gray, fcol=:gray)
    for x = 1:nx
        for y = 1:ny
            unit(2a * x, 2b * y)
        end
    end
    plotend()
end

asanoha4(4, 3, width=693, height=300)
savefig("fig4.png")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村