- fix circlecircleinnertangents() edge case
currentpoint()
,has_current_point()
pointcircletangent()
circlecircleoutertangents()
circlecircleinnertangents()
julialogo()
centered optiontidysvg()
function to hack glyphnames in SVG files (probably a temporary thing)- support for Pluto
- document handling code (cf Pluto support)
julialogo()
tweaks to allow :path action- @svg rendering modified (eg no glyphname hacking done)
- arrow decorations
- :image type, image_as_matrix(), @imagematrix to convert current vector drawing to matrix
- some
:nothing
s replaced with:none
s - fixed some
box
bugs, when they were drawn when they shouldn't have been
bars()
- usebarchart()
startnewpath
option fortextoutlines()
unique
defined for Points- Travis/Appveyor cache
- GIFs preview in Juno
- attempt to make arrow shafts not stick out of arrow heads
- internals of rule doesn't use sets any more
- changed compatibility versions in Project.toml (Colors/Cairo)
- add/subtract Point to BoundingBox to shift it by that amount
strokefunction
argument added tobrush()
- error checking for
readpng()
#81 (thanks Avik!)
-
operation of @pdf/svg/png/eps macros should now hopefully allow string interpolation in filenames, if my macro-fu has worked. So this should work:
for i in 1:10 @png begin circle(O, i, :fill) end 300 300 "/tmp/circle-$(i).png" end
-
intersection2circles domain errors and negative output fixed (thanks casey & Júlio) 😊
- changed compatibility versions in Project.toml (Colors/Cairo)
- changed compatibility versions in Project.toml
- Bezier
arrow()
s can also be defined by height of box
arrow()
arrows can have decoration (arbitrary graphics) drawn at a location along the shaft
pathtopoly()
revised- generating docs on macOS again, now that Travis/Cairo/macOS is back to normal
- some
arrowhead
options renamed to be more consistent - bug fixed in
box()
with rounded corners (Thanks Anthony!) - mktempdir()
- @draw (thanks hr0m m3m0ry!)
- initnoise() is correctly seedable
- center3pts() changed
- use of realpath() in test removed - it seems error-prone on recent macOS systems
- testing OpenType fonts in docs
- seednoise()
- polyintersect()
- polytriangulate()
- rand(bb::BoundingBox)
- in(pt, bb) aliases isinside(pt, bb)
- texttrack() does line-spacing
- @eps macro
- polytriangulate!() -> polytriangulate()
-
polyreflect!()
-
polyscale!()
now can do scaling in h and v separately -
pointcrossesboundingbox()
does something -
mask()
does rectangular areas too -
textbox()
andtextwrap()
return a position -
rule()
hasvertices
option to return points rather than draw lines
textwrap()
no longer inserts a blank line at the top
- another method for
ellipse()
that takes three points insertvertices!(pgon)
inserts a vertex into every edge of a polygonjulialogo()
optionbodycolor
to make light-colored logo for dark modesmask()
does simple circular mask calculation
- fixed bug in
ellipse()
(thanks @Ryngetsu!) - fixed
polysortbyangle()
,tan()
problems julialogo()
andjuliacircles()
now produce new 3-color rather than 6-color circles
-
use Project.toml
-
dimension() for dimensioning
-
polymove!(), polyrotate!(), polyscale!() for really changing polygons
-
intersectionlines() replaces intersection()
-
animate() has new option to choose ffmpeg command
-
Bezier (bidirectional)
arrow
method added -
Bezier easing function,
easeinoutbezier()
takes two normalized control points to control easing when animating -
arc2sagitta()/carc2sagitta() functions added
-
isarcclockwise() added
-
pointinverse() added
-
functions that used intersection() now use intersectionlines()
-
more functions return points or arrays (or true) rather than unions of Booleans/points or nothing
-
rescale(x, a, b) defaults to rescale(x, a, b, 0.0, 1.0)
-
the
@pdf
,@png
, and@svg
macros allow you to omit the suffix/file extension -
All the noise-related code has been replaced. I discovered that the algorithm was patent-encumbered, so I've switched over to the OpenSimplexNoise algorithm. The advantage is that there's now 4D simplex noise. The disadvantages are that the new code is currently a bit slower, and (obviously) all the actual noise values produced for a specific set of inputs will be slightly different from v1.2.0. The file
src/patentednoise.jl
contains the old noise code.
-
much noise-related code
-
polyselfintersections() removed, it didn't work at all
-
REQUIRE
-
intersection() is deprecated, in favour of intersectionlines(). It should be more reliable, and has fewer options/special cases for collinearity.
-
seednoise() has changed
- more box functions take vertices=true/false
- added setdash(dashes)
- miscellaneous polygon functions tho they're largely untested and needing improvements
- eachindex for Table
- feature gallery illustration
- tried to fix bugs in
rule()
- settext() now rescales from 96dpi to 72dpi
- Luxor.juliacolorsceheme, it's no longer compatible with ColorSchemes.jl
- highlightcells()
- textoutlines()
- additional option for Scene to pass information
- fixed bug in single cell tables
- shapefiles convert now has typed array declaration (oops)
- off-by-one bug in table iterator fixed (yikes!)
- logo and readme image
- BoundingBox access functions: boxtopleft(), boxtopcenter(), boxtopright(), boxmiddleleft(), boxmiddlecenter(), boxmiddleright(), boxbottomleft(), boxbottomcenter(), boxbottomright()
- duplicate definition in tiler removed
- documenter support is now at 0.20
- use AbstractString rather than String
- use eachindex more
- docs use more svg images
- changed preview() in Windows again
- fixed display code to work in Jupyter
- rand() in all tests is seeded in advance to produce predictable output
- internal changes to fix type stability
- Luxor.initnoise()
- seednoise()
- noise implementation revised
- circle/tangent functions
- noise
- Travis documentation stage
- new version number for better compatibility with julia v1.0
- option for tempdirectory in
animate()
polysample()
has closed option restored- .travis.yml tweaks - the saga continues
setcolor(colorant)
no longer drops the alpha if suppliedendof
replaced withlastindex
rule()
now draws lines across boundingbox, default to the drawing's boundingbox
scale
is no longer in Base, so we don't need to import it
polysample()
Dates
prefix where requiredmidpoint()
andbetween()
work on BoundingBoxes
srand
toRandom.seed!
- replaced Appveyor script from https://github.com/JuliaCI/Appveyor.jl
- adjusted with imports from Cairo in test scripts
end
inmod1()
- Point is
broadcastable
preview()
now returns name of new file, unless in Juno/Jupyter
fill()
removed, use fillpathstroke()
removed, use strokepathpolybbox()
removed, use boundingboxbboxesintersect()
removed, use boundingboxesintersectnorm()
removed, use distancedot()
removed, use dotproductaxes()
removed, use rulers
boxmap()
mimewritable
toshowable
- Juno-specific code in "atom.jl"
V0.7 release (first version)
rulers()
- iterators are now v0.7-style
- this version works only with Julia v0.7.0+
- dropped LinearAlgebra dependency
- dropped Julia v0.6...
-
norm(pt1::Point, pt2::Point)`` is now deprecated, to be replaced with
distance(pt1::Point, pt2::Point)`` -
dot(pt1::Point, pt2::Point)`` is now deprecated, to be replaced with
dotproduct(pt1::Point, pt2::Point)` -
axes()
is now deprecated, to be replaced withrulers()
Misc updates and bug fixes for v0.6. Final release for v0.6, master is now v0.7 only.
- Bezier-handling functions
boxtop()
,boxbottom()
- timestamped output files for @svg etc macros
- fixed premature close in
pathtobezierpaths()
Updates
- bounding boxes and related changes
- add polybbox()
- text() gets angle keyword
- label() gets rotation option)
- table row/height types fixed
Updates (still v0.6.2)
- added tables
textwrap()
gets leading option
Update for Cairo v0.5
squircle()
getsstepby
option
circle()
uses Cairo arcs now, not circles
Bug fixes
Mostly bug fixes, including hopefully a fix for IJulia world age issue (#17)
- IJulia preview code
Bug fixes for Julia v0.5
More updates and bug fixes
textwrap()
/textbox()
textwrap()
function takeslinenumber
argument- Bezier meshes
- some bugs fixed eg turtle, polyremainder, mesh
- turtle tweaked
Misc updates and bug fixes
- in-memory drawings (thanks, @barche)
- path to Bezierpath conversions
- tutorial in docs
- minimum version is now Julia v0.6
- misc bugs fixed and added...
Miscellaneous changes and documentation improvements
- better type usage
- fix offsetpoly() bugs
- fix isinside() bugs
- Bug fixes backported from master for v0.6
Final Julia v0.6 release (but it wasn't really)
- @pdf @svg and @pdf macros
polyarea()
ngonside()
- circle intersection:
intersection2circles()
- polygon to Bezier path conversion
- bars()
- drop support for v0.4
ready for Julia v0.6
- box rounded corners
- spiral()
- origin takes pos
Support for Juno preview
- preview in Juno's PlotPane.
- scale single value
- epitrochoids
Animation and polygon additions
cropmarks()
polyperimeter()
,polydistances()
,polyportion()
,nearestindex()
- try to display SVG in Jupyter
- bug fixes
patch for preview() function in Windows
- pathtopoly()
- perimeter utilities
- cropmarks()
- This changes the preview() function to run better code for Windows.
Julia v0.6 pre-release
- fill()
Fixes for 0.5.1 and 0.6.x
rule()
- hex grids
- sector methods
- grids
compositing and misc additions, some changes for v0.6
- compositing with
setmode()
- grids
Tests pass on Windows
- hypotrochoids
- another ellipse method
- intersect()
- intersectionlinecircle()
- rounded sectors
-Make docs on Travis the way they should have been made -Move to JuliaGraphics organization
- the docs have been moved into the gh-pages branch
v0.7.0 Documentation updates
- Jupyter preview PNG
- get_scale
- get_translation
- get_rotation
- between
- prettypoly() has vertex labels
- animation
- polyfit()
- circle() (path)
- offsetpoly()
- blend()
- blendadjust()
- arc2r()
- polysmooth()
- O shortcut
- PNG files are transparent if no background
- origin() resets CTM
- documentation, squircle(), arrow(), pie()
- Tiler (was PageTiler)
- ngon() star() keyword arguments
- Point is immutable
First release
- Drawing, currentdrawing, rescale, finish, preview, origin, axes, background, newpath, closepath, newsubpath, circle, rect, box, setantialias, setline, setlinecap, setlinejoin, setdash, move, rmove, line, rline, curve, arc, carc, ngon, ngonv, sector, do_action, stroke, fill, paint, paint_with_alpha, fillstroke, poly, simplify, polybbox, polycentroid, polysortbyangle, polysortbydistance, midpoint, prettypoly, star, starv, intersection, polysplit, strokepreserve, fillpreserve, gsave, grestore, scale, rotate, translate, clip, clippreserve, clipreset, isinside, getpath, getpathflat, pattern_create_radial, pattern_create_linear, pattern_add_color_stop_rgb, pattern_add_color_stop_rgba, pattern_set_filter, pattern_set_extend, fontface, fontsize, text, textpath, textextents, textcurve, textcentred, setcolor, setopacity, sethue, randomhue, randomcolor, @setcolor_str, getmatrix, setmatrix, transform, readpng, placeimage