From ac1ce03fe5fee4c399172cdc9a48f8d44cd44c96 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Wed, 14 Oct 2015 20:46:17 -0400 Subject: [PATCH] working on shapes overhaul --- docs/readme_template.md | 2 +- examples/recipes.ipynb | 54 +++++++---------- src/args.jl | 15 +++-- src/backends/gadfly.jl | 16 ++++-- src/backends/pyplot.jl | 4 +- src/backends/qwt.jl | 14 +++-- src/backends/winston.jl | 4 +- src/types.jl | 124 ++++++++++++++++++++-------------------- 8 files changed, 118 insertions(+), 115 deletions(-) diff --git a/docs/readme_template.md b/docs/readme_template.md index 515ff761..01b2ec4b 100644 --- a/docs/readme_template.md +++ b/docs/readme_template.md @@ -236,7 +236,7 @@ __Tip__: When plotting multiple lines, you can set all series to use the same va ```julia plot(rand(100,4); color = [:red RGB(0,0,1)], # (Matrix) lines 1 and 3 are red, lines 2 and 4 are blue axis = :auto, # lines 1 and 3 are on the left axis, lines 2 and 4 are on the right - markershape = [:rect, :star1] # (Vector) ALL lines are passed the vector [:rect, :star1] + markershape = [:rect, :star] # (Vector) ALL lines are passed the vector [:rect, :star1] width = 5) # all lines have a width of 5 ``` diff --git a/examples/recipes.ipynb b/examples/recipes.ipynb index f8e50412..2683b82b 100644 --- a/examples/recipes.ipynb +++ b/examples/recipes.ipynb @@ -186,41 +186,35 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "INFO: Recompiling stale cache file /home/tom/.julia/lib/v0.4/Plots.ji for module Plots.\n", - "ERROR: LoadError: LoadError: syntax: missing comma or ) in argument list\n", - " in include at ./boot.jl:261\n", - " in include_from_node1 at ./loading.jl:304\n", - " in include at ./boot.jl:261\n", - " in include_from_node1 at ./loading.jl:304\n", - " [inlined code] from none:2\n", - " in anonymous at no file:0\n", - " in process_options at ./client.jl:284\n", - " in _start at ./client.jl:411\n", - "while loading /home/tom/.julia/v0.4/Plots/src/types.jl, in expression starting on line 108\n", - "while loading /home/tom/.julia/v0.4/Plots/src/Plots.jl, in expression starting on line 98\n" + "-0." ] }, { - "ename": "LoadError", - "evalue": "LoadError: Failed to precompile Plots to /home/tom/.julia/lib/v0.4/Plots.ji\nwhile loading In[1], in expression starting on line 1", - "output_type": "error", - "traceback": [ - "LoadError: Failed to precompile Plots to /home/tom/.julia/lib/v0.4/Plots.ji\nwhile loading In[1], in expression starting on line 1", - "", - " in error at ./error.jl:21", - " in recompile_stale at loading.jl:460", - " in _require_from_serialized at loading.jl:83", - " in _require_from_serialized at ./loading.jl:109", - " in require at ./loading.jl:219" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde3RT170v+ilpSUsPy3pYkiXZsi3b+P0A+YGwKBCT8LBJcDCBgCFExE1EcWiTmIZ24zQhuxz22XTcO5q96RjnjnSfmzPGHff0nn/OGGef0+7dNH2lSRNCmhAeAWNjY0uAbfyWH5Kt+8cKDgWCdNJVzTXV72fkjwJi/r4Z/c0VWXNqTkIAAAAAAAAAAAAAAAAAAP73aTRat7uQdgpggNtdqNFoaacAqZPL5SUl5bRTAAOczmyDwUQ7BTCgrKwqmeXkYg1ktzv27Nkv1miQwtra9tvtTtopQOqUStWhQy/TTgEMaGraWlGR1P9wAqNeeuloMsuJ9gZrenr6/PnPxBoNUtiFC59NT0/RTgFSt7i4cObMB7RTAAN6erqHh4dopwAGnD79Hu0IAAAAAPAXUHzVH+S58prXN62u8xUXFE1OT45NjD14IIPBVFu78tq1PrETQqppaFgzMTExNzdLOwhImkLBPfJI05Url2gHAamrqvJwHDc5OUE7CEjd5s1bu7s/T1q5r1wifNi3/vcfvPuf/p//690P313va4w7kNlsbmzcKGo2SE2NjZvM5gzaKUDqOI5radlBOwUwoL5+VV5ePu0UwIDt29uSWe4rP8EqLii+FhyYmJww6NMzLZmffX7uwQMtLCyMjAyHQoNiJ4RUMzU1OTDQNz8/RzsISN3Y2K3+/qu0U4DUhcPhUGhgago7OyGO8fHRvr6epJX7yjdYoZuhLQ83ez3e3Ozcf337X2dmZ5b+SKlUpqXpCZEtLER5Xq3T6RYXF2dmZiYmxjQabSQSicVi6ekGpVI1Pz+vUHB6vV4uV0SjEZVKpdOlEUIWFhY0Gq1Wq41GF2KxxbQ0vVqtmZubk8vlen06x3GRSITjuLQ0vUwmj0a/rLK4uKjT6e6tIpcr9Pp0hYKLROJXkclk6ekGjlNGIvOJVNHr03men5+fS6SKTpem0Wjm5+cTqaLVClWi8arIFhaiarVGq9UtLCwsLiZShdfp0mKx2MLCQtwqd/4fGrfKnf+HPqCKWq2+6//QpSoDA31yufyuKg9om3urPKBt7v13eUDb3FslweYUqiTYnEKVBJvzdpVEmzM93aBSJdqcQpUEm/N2lbjN+WWVhJtTrdPp4janXC6/cuXS15gCcZvzzipf1TZ3VSGEJNicQpUEm/N2lYSaU6iSYHPe9XxOpAq7z+fJyYlbt0bwfBbl+XzfKinzfL5x4/p9q8zN/VV+4P/KN1ibH9r06YVPf/7rX8zPz3sqVlzovrj0RxUVy59//jDHKS9dutDUtPWpp9qDwYFYjPz93/8fDQ1r/vjHP8zNzb7++o+WL6/73e9+5XLlHD78SkaG9dNPz6xatebZZ58Ph8N9fT07d+7duXPv55+fHxsb7ezs2rhxy9tv/zwtTd/VdTw/v+iDD94tK6s8dOi7KpXq88/Pb9r06L5937x+PXT9erC9vaOl5YnTp9+fmZl57bWTtbUrf/Obt7Ozc7773Ves1sxPPvnI61393HOHZmdnr169smPHnp07916+/Pno6K0XX/y7TZsefeedf9NotD/4wYlly0ref//3JSUV3/72yxqN5sKFzzZsaHr66eeGhm6EQoPPPHOwpWXHmTMfhsPTr776DytX+n796393OLJefvlVu93x8cen6+oaAoFvz8/P9/Z2t7bu2rVr35Url2/dGvnOd440NW399a//XaXiX331H4qKyt5//3dFRaXf+c4RrVZ34cLZ9es3+f2B4eGhYHDg6acD27bt/NOfTk9PT3V1Hff51r3zzr9lZtqPHHnN6cw6c+bDmpqVBw68EI0u9PRcfvzxnbt3P93be2VkZPjQoe82N7f89re/UigUr732H0tLK//wh98WFha98ML39Xr9uXOfNjZu3L//wOjorcHBa/v2Pbtt25Offnpmamry6NEfrlnT+Ktf/cJqzfze945lZ+d89NEfPZ76b33rxVgs1t19aevWHW1t/v7+q8PDNzs6Ordsefzdd38di8WOHfvH8vLqd9/9TUHBshdf/H56uvGzzz5Zu/bhZ5751vj42MBA/5497du37zp37pPJyYnvfe/YQw898vbbP8/IsHz/+6+7XHmnT7+/fHntwYMvESKrrq5ZsaL2iSfarl3rHxq68a1vvfDoo9v+8IffRqMLr79+srJy+e9//+u8vPzOzqNGo/ns2T994xuN7e0Hp6Ym+/uv7t7tf+KJtvPnz05MjL/88qsPP9z0y1/+T6PRdPToD3Nz8z/88L3KyhXPP9+pUHCXLl1oamrZu7d9cPDazZvXn3vuO4891vrHP747Pz/393//o+rqmt/97le5uXmdnV1ms+XTTz/2+dZ985sd09PTfX29u3bt27Fjz8WL58bHxw4f/sHGjc2//OX/Sk83dnX90O1e9sEHf6ioqH7++cNKpfLzz89v3vzYU099MxQK3rgRevbZQ1u3bv/ww/dmZ2eOHftRTU39b3+71Jy2Tz75aNWqbzz77KGZmZmrV7+YApcuXRwbu/XSS0c3bXr07bd/odOlvfLKfygoKP7jH98tLa389re/y/P8xYvnNmxofvrpZ2/cuH79elBozo8++uPMTPjVV/9jXV3Db37zS6cz++WXf2Cz2f/0p9P19Q2BwLfn5uZ6e69s3777ySef6u6+NDo68p3vfG/z5sfeeeff1Gr1D35woqio9P33f19cXPad7xzRaLQXLnz2yCObn376uaGhm6HQ4P7933r88R0ff/xhODz9gx+cWLVqzTvv/Jvd7jxy5FWHw/nxxx/W1q46cOA70Wi0p+fytm1P7tq1r7e3e2RkWJgCv/nN2xynfPXVfygpqXjvvd8uW1bywgvfS0tLO3/+bGPjxv37A7dujQwOXtu377lt25789NOPpqa+nAI2m/1733stJyd3+fI6Qsi3vvXCwsLilSuXWlp27N7tv3q1Z2Rk6PnnDzc3t/zud+/IZLLXXvvHsrKqP/zhNwUFRS+++P20tPRz5z5dt+6RZ5751ujo6OBg/9697a2tu86e/XhqavL733993bqH33775xkZ1u9///Xs7NyPPvrjihVCc5Lu7s8fe2x7W9v+a9f6hoZuHjz44pYt29599zex2OKxYycrKqrffffX+fmFL730dwaD6bPP/rRmzfr29oOTkxPXrvW1tT2zffvu8+c/nZgYP3LkWGPjpl/+8n+ZzRl/93d/n5PjPn36/erqmo6Ol+RyxeXLF5ubH9+795nBwWs3b944cODFRx/d9v77v49EIq+//qPqas/vfvdOXp67s/OoyZRx9uzHq1c/9M1vdkxNTfX3X929++knnmi7cOGz8fGx73731Uceafr3f/+fBoPp6NEf5uUVfPjhe/d9Pt+4cf2557792GPbU/L53NKy4/LliyqVCs/nv/z53N39+ZYt2/bseSYln88vvvj9X/zif9z7fP7Vr/4tFlv8a7zHur8DewOcgiOEcBwX2Ptc3Ne73QVdXcf/+rmAeUePHseZtBAXz6tPnXqLdgpgQHv7QZ9v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", + "text/plain": [ + "Plot{Plots.ImmersePackage() n=2}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "625-0.5\n", + "-0.375-0.25\n" ] } ], @@ -235,17 +229,13 @@ "function makecross(; offset = -0.5, radius = 1.0)\n", " z2 = offset * π\n", " z1 = z2 - π/8\n", - "# z1 = -0.5 * π - π/8\n", - "# z2 = offset * π\n", - " @show z1/π,z2/π\n", " outercircle = Plots.partialcircle(z1, z1 + 2π, 9, radius)\n", - " innercircle = Plots.partialcircle(z2, z2 + 2π, 5, 0.4radius)\n", - " Shape(weave(outercircle, innercircle)[1:end-2], ordering=Any[outercircle,outercircle,innercircle])\n", - "# Shape(outercircle[1:end])\n", + " innercircle = Plots.partialcircle(z2, z2 + 2π, 5, 0.5radius)\n", + " Shape(Plots.weave(outercircle, innercircle, ordering=Vector[outercircle,innercircle,outercircle])[1:end-2])\n", "end\n", "\n", "rng = [3,4,5,6,7,8]\n", - "rng = [-0.5,-0.375]\n", + "rng = [-0.5,-0.25]\n", "scatter(repmat((1:length(rng))',10,1), shape=[makecross(offset=i) for i in rng]', ms=20, bg=:black, ylim=(0,7))" ] }, diff --git a/src/args.jl b/src/args.jl index 3cd7044a..19c48beb 100644 --- a/src/args.jl +++ b/src/args.jl @@ -37,8 +37,9 @@ const _allStyles = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] :ddd => :dashdotdot, ) -const _allMarkers = [:none, :auto, :ellipse, :rect, :diamond, :utriangle, :dtriangle, - :cross, :xcross, :star1, :star2, :hexagon, :octagon, Shape] +# const _allMarkers = [:none, :auto, :ellipse, :rect, :diamond, :utriangle, :dtriangle, +# :cross, :xcross, :star5, :star8, :hexagon, :octagon, Shape] +const _allMarkers = hcat(:none, :auto, sortedKeys(_shapes)) @compat const _markerAliases = Dict( :n => :none, :no => :none, @@ -64,9 +65,13 @@ const _allMarkers = [:none, :auto, :ellipse, :rect, :diamond, :utriangle, :dtria :plus => :cross, :x => :xcross, :X => :xcross, - :star => :star1, - :s => :star1, - :s2 => :star2, + :star => :star5, + :s => :star5, + :star1 => :star5, + :s2 => :star8, + :star2 => :star8, + :p => :pentagon, + :pent => :pentagon, :h => :hexagon, :hex => :hexagon, :o => :octagon, diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index 1819c6d4..409363be 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -60,7 +60,8 @@ supportedArgs(::GadflyPackage) = [ supportedAxes(::GadflyPackage) = [:auto, :left] supportedTypes(::GadflyPackage) = [:none, :line, :path, :steppost, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline, :ohlc] supportedStyles(::GadflyPackage) = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] -supportedMarkers(::GadflyPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon, :octagon, Shape] +# supportedMarkers(::GadflyPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon, :octagon, Shape] +supportedMarkers(::GadflyPackage) = hcat(:none, :auto, sortedKeys(_shapes)) supportedScales(::GadflyPackage) = [:identity, :log, :log2, :log10, :asinh, :sqrt] @@ -147,11 +148,14 @@ function getMarkerGeoms(d::Dict) shape = d[:markershape] isa(shape, Shape) && return [gadflyshape(shape)] shape == :none && return Any[] - shape == :ellipse && return [Gadfly.Geom.point] - shape == :rect && return [gadflyshape(_square)] - shape == :diamond && return [gadflyshape(_diamond)] - shape == :cross && return [gadflyshape(_cross)] - error("unhandled marker: ", shape) + if !haskey(_shapes, shape) + error("unhandled marker: ", shape) + end + [gadflyshape(_shapes[shape])] + # shape == :ellipse && return [Gadfly.Geom.point] + # shape == :rect && return [gadflyshape(_square)] + # shape == :diamond && return [gadflyshape(_diamond)] + # shape == :cross && return [gadflyshape(_cross)] end diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index b1fff823..6ccdbdd9 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -62,7 +62,7 @@ supportedArgs(::PyPlotPackage) = [ supportedAxes(::PyPlotPackage) = _allAxes supportedTypes(::PyPlotPackage) = [:none, :line, :path, :step, :stepinverted, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline] supportedStyles(::PyPlotPackage) = [:auto, :solid, :dash, :dot, :dashdot] -supportedMarkers(::PyPlotPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :hexagon] +supportedMarkers(::PyPlotPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5, :hexagon] supportedScales(::PyPlotPackage) = [:identity, :log, :log2, :log10] subplotSupported(::PyPlotPackage) = true @@ -96,7 +96,7 @@ function getPyPlotMarker(marker::Symbol) marker == :dtriangle && return "v" marker == :cross && return "+" marker == :xcross && return "x" - marker == :star1 && return "*" + marker == :star5 && return "*" marker == :hexagon && return "h" warn("Unknown marker $marker") return "o" diff --git a/src/backends/qwt.jl b/src/backends/qwt.jl index 8e8aa59a..ddc5dc76 100644 --- a/src/backends/qwt.jl +++ b/src/backends/qwt.jl @@ -56,7 +56,7 @@ supportedArgs(::QwtPackage) = [ # :z, ] supportedTypes(::QwtPackage) = [:none, :line, :path, :steppre, :steppost, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline] -supportedMarkers(::QwtPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon] +supportedMarkers(::QwtPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5, :star8, :hexagon] supportedScales(::QwtPackage) = [:identity, :log10] # ------------------------------- @@ -70,9 +70,10 @@ supportedScales(::QwtPackage) = [:identity, :log10] :path => :line, :steppost => :step, :steppre => :stepinverted, + :star5 => :star1, + :star8 => :star2, ) - function fixcolors(d::Dict) for (k,v) in d if typeof(v) <: ColorScheme @@ -81,9 +82,9 @@ function fixcolors(d::Dict) end end -function replaceLinetypeAlias(d) - if haskey(_qwtAliases, d[:linetype]) - d[:linetype] = _qwtAliases[d[:linetype]] +function replaceQwtAliases(d, s) + if haskey(_qwtAliases, d[s]) + d[s] = _qwtAliases[d[s]] end end @@ -111,7 +112,8 @@ function adjustQwtKeywords(plt::Plot{QwtPackage}, iscreating::Bool; kw...) d = barHack(; histogramHack(; kw...)...) end - replaceLinetypeAlias(d) + replaceQwtAliases(d, :linetype) + replaceQwtAliases(d, :markershape) for k in keys(d) if haskey(_qwtAliases, k) diff --git a/src/backends/winston.jl b/src/backends/winston.jl index 49d9333c..816017d5 100644 --- a/src/backends/winston.jl +++ b/src/backends/winston.jl @@ -26,7 +26,7 @@ :dtriangle=>"down-triangle", :cross => "plus", :xcross => "cross", - :star1 => "asterisk" + :star5 => "asterisk" ) @@ -81,7 +81,7 @@ supportedArgs(::WinstonPackage) = [ supportedAxes(::WinstonPackage) = [:auto, :left] supportedTypes(::WinstonPackage) = [:none, :line, :path, :sticks, :scatter, :hist, :bar] supportedStyles(::WinstonPackage) = [:auto, :solid, :dash, :dot, :dashdot] -supportedMarkers(::WinstonPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1] +supportedMarkers(::WinstonPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5] supportedScales(::WinstonPackage) = [:identity, :log10] subplotSupported(::WinstonPackage) = false diff --git a/src/types.jl b/src/types.jl index 8361cf07..dadb782c 100644 --- a/src/types.jl +++ b/src/types.jl @@ -51,37 +51,37 @@ immutable Shape vertices::AVec end -const _square = Shape(@compat(Tuple{Float64,Float64})[ - ( 1.0, -1.0), - ( 1.0, 1.0), - (-1.0, 1.0), - (-1.0, -1.0) - ]) +# const _square = Shape(@compat(Tuple{Float64,Float64})[ +# ( 1.0, -1.0), +# ( 1.0, 1.0), +# (-1.0, 1.0), +# (-1.0, -1.0) +# ]) -const _diamond = Shape(@compat(Tuple{Float64,Float64})[ - ( 0.0, -1.0), - ( 1.0, 0.0), - ( 0.0, 1.0), - (-1.0, 0.0) - ]) +# const _diamond = Shape(@compat(Tuple{Float64,Float64})[ +# ( 0.0, -1.0), +# ( 1.0, 0.0), +# ( 0.0, 1.0), +# (-1.0, 0.0) +# ]) -const _cross = Shape(@compat(Tuple{Float64,Float64})[ - (-1.0, -0.4), (-1.0, 0.4), # L edge - (-0.4, 0.4), # BL inside - (-0.4, 1.0), ( 0.4, 1.0), # B edge - ( 0.4, 0.4), # BR inside - ( 1.0, 0.4), ( 1.0, -0.4), # R edge - ( 0.4, -0.4), # TR inside - ( 0.4, -1.0), (-0.4, -1.0), # T edge - (-0.4, -0.4) # TL inside - ]) +# const _cross = Shape(@compat(Tuple{Float64,Float64})[ +# (-1.0, -0.4), (-1.0, 0.4), # L edge +# (-0.4, 0.4), # BL inside +# (-0.4, 1.0), ( 0.4, 1.0), # B edge +# ( 0.4, 0.4), # BR inside +# ( 1.0, 0.4), ( 1.0, -0.4), # R edge +# ( 0.4, -0.4), # TR inside +# ( 0.4, -1.0), (-0.4, -1.0), # T edge +# (-0.4, -0.4) # TL inside +# ]) -const _xcross = Shape(@compat(Tuple{Float64,Float64})[ - (x, y - u), (x + u, y - 2u), (x + 2u, y - u), - (x + u, y), (x + 2u, y + u), (x + u, y + 2u), - (x, y + u), (x - u, y + 2u), (x - 2u, y + u), - (x - u, y), (x - 2u, y - u), (x - u, y - 2u) - ] +# const _xcross = Shape(@compat(Tuple{Float64,Float64})[ +# (x, y - u), (x + u, y - 2u), (x + 2u, y - u), +# (x + u, y), (x + 2u, y + u), (x + u, y + 2u), +# (x, y + u), (x - u, y + 2u), (x - 2u, y + u), +# (x - u, y), (x - 2u, y - u), (x - u, y - 2u) +# ] # function xcross(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray) @@ -105,11 +105,11 @@ const _xcross = Shape(@compat(Tuple{Float64,Float64})[ # end -const _utriangle = Shape(@compat(Tuple{Float64,Float64})[ - (x - r, y + u), - (x + r, y + u), - (x, y - u) - ] +# const _utriangle = Shape(@compat(Tuple{Float64,Float64})[ +# (x - r, y + u), +# (x + r, y + u), +# (x, y - u) +# ] # function utriangle(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1) # n = max(length(xs), length(ys), length(rs)) @@ -136,7 +136,7 @@ function partialcircle(start_θ, end_θ, n = 20, r=1) end "interleave 2 vectors into each other (like a zipper's teeth)" -function weave(x,y; ordering = [x,y]) +function weave(x,y; ordering = Vector[x,y]) ret = eltype(x)[] done = false while !done @@ -166,16 +166,17 @@ end "create a shape by picking points around the unit circle. `n` is the number of point/sides, `offset` is the starting angle" function makeshape(n; offset = -0.5, radius = 1.0) z = offset * π - Shape(Plots.partialcircle(z, z + 2π, n+1, radius)[1:end-1]) + Shape(partialcircle(z, z + 2π, n+1, radius)[1:end-1]) end function makecross(; offset = -0.5, radius = 1.0) - z1 = offset * π + π/8 - z2 = z1 + π/8 + z2 = offset * π + z1 = z2 - π/8 outercircle = partialcircle(z1, z1 + 2π, 9, radius) - innercircle = partialcircle(z2, z2 + 2π, 5, 0.4radius) - Shape(weave(outercircle, innercircle)[1:end-2]) + innercircle = partialcircle(z2, z2 + 2π, 5, 0.5radius) + Shape(weave(outercircle, innercircle, + ordering=Vector[outercircle,innercircle,outercircle])[1:end-2]) end @@ -189,7 +190,8 @@ const _shapes = Dict( :hexagon => makeshape(6), :septagon => makeshape(7), :octagon => makeshape(8), - + :cross => makecross(offset=-0.25), + :xcross => makecross(), ) for n in [4,5,6,7,8] @@ -203,34 +205,34 @@ end -const _xcross = Shape(@compat(Tuple{Float64,Float64})[ - ] +# const _xcross = Shape(@compat(Tuple{Float64,Float64})[ +# ] -# function hexagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray) -# n = max(length(xs), length(ys), length(rs)) +# # function hexagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray) +# # n = max(length(xs), length(ys), length(rs)) -# polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n) -# for i in 1:n -# x = Compose.x_measure(xs[mod1(i, length(xs))]) -# y = Compose.y_measure(ys[mod1(i, length(ys))]) -# r = rs[mod1(i, length(rs))] -# u = 0.6r +# # polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n) +# # for i in 1:n +# # x = Compose.x_measure(xs[mod1(i, length(xs))]) +# # y = Compose.y_measure(ys[mod1(i, length(ys))]) +# # r = rs[mod1(i, length(rs))] +# # u = 0.6r -# polys[i] = [ -# (x-r, y-u), (x-r, y+u), # L edge -# (x, y+r), # B -# (x+r, y+u), (x+r, y-u), # R edge -# (x, y-r) # T -# ] -# end +# # polys[i] = [ +# # (x-r, y-u), (x-r, y+u), # L edge +# # (x, y+r), # B +# # (x+r, y+u), (x+r, y-u), # R edge +# # (x, y-r) # T +# # ] +# # end -# return Gadfly.polygon(polys) -# end +# # return Gadfly.polygon(polys) +# # end -const _xcross = Shape(@compat(Tuple{Float64,Float64})[ - ] +# const _xcross = Shape(@compat(Tuple{Float64,Float64})[ +# ] # function octagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray) # n = max(length(xs), length(ys), length(rs))