# \[ANN\] Makie.jl 0.15

**URL:** <https://discourse.julialang.org/t/ann-makie-jl-0-15/64704>\
**Category:** Package Announcements\
**Tags:** plotting, makie\
**Created:** [July 15, 2021, 4:50pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704 "2021-07-15T16:50:53Z")\
**Posts on this page:** 10\
**Page:** 2

<div class="post-metadata">

**Author:** ![sunbubble](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sunbubble/32/22022_2.png) [@sunbubble](https://discourse.julialang.org/u/sunbubble)\
**Post date:** [July 17, 2021, 1:37pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/21 "2021-07-17T13:37:09Z")

</div>

This type of zooming is called dollying, and it’s technically a not a zoom, but simply moving the camera towards the lookAt.

---

<div class="post-metadata">

**Author:** ![Jakob](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@Jakob](https://discourse.julialang.org/u/Jakob)\
**Post date:** [July 17, 2021, 2:26pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/22 "2021-07-17T14:26:16Z")

</div>

ElectronDisplay.jl is also nice for a more REPL-based workflow 🙂

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [July 17, 2021, 2:34pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/23 "2021-07-17T14:34:35Z")

</div>

> [@sunbubble](#):
>
> dollying

Didn’t know what it was until now but, it looks good!

---

<div class="post-metadata">

**Author:** ![t-bltg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/t-bltg/32/25526_2.png) [@t-bltg](https://discourse.julialang.org/u/t-bltg)\
**Post date:** [July 17, 2021, 5:19pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/24 "2021-07-17T17:19:52Z")

</div>

> [@bvrb](#):
>
> Also love the volume slice plot. Although I didn’t know until now I needed something like that, I think I might have some use for that as well 🤔

I always follow this cycle: 1D code → `lines(...)`, port it to 2D → `heatmap(...)` or `surface(...)`, port it to 3D → `volumeslices(...)`.

BTW, PR by @ffreyer ([Add DataInspector specialization for volumeslices by ffreyer · Pull Request #1134 · MakieOrg/Makie.jl · GitHub](https://github.com/JuliaPlots/Makie.jl/pull/1134)) looks awesome !

---

<div class="post-metadata">

**Author:** ![ffreyer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ffreyer/32/21569_2.png) [@ffreyer](https://discourse.julialang.org/u/ffreyer)\
**Post date:** [July 17, 2021, 6:46pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/25 "2021-07-17T18:46:07Z")

</div>

I have no idea how to make touch interactions like that work. I also don’t think my laptop can two finger gestures, so I couldn’t test it.

With respect to adjusting things - you can change all the keys to your liking if you create the camera manually. I don’t think we can have multiple hotkeys for the same action atm. We’d need something like `AnyOf(key1, key2, key3)` and `AllOf(key1, key2, key3)` to differentiate.

You can change the `rotation_center` to rotate the camera rather than rotating it around something. You can adjust rotation, translation and zoom speeds for both keyboard and mouse interactions individually. Translations on zoom can be turned on/off with `zoom_shift_lookat`. You can enable/disable rotation on zoom with `cad` (though I don’t know how cad like that still is). The `projectiontype` can be changed to `Orthographic`. `circular_rotation` can be enabled/disabled per axis, which allows you to have a continuous rotation when you trace a circle. And you can enable/disable `fixed_axis` which restricts left/right drag to rotate around the z axis.

I didn’t port the zoom from the old camera which is a dolly zoom I guess. If you want that back you can still use `old_cam3d!`. If there is interest I can also add that to the new camera. (Might be a good idea anyway. We could remove the old code without losing anything then…)

---

<div class="post-metadata">

**Author:** ![sunbubble](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sunbubble/32/22022_2.png) [@sunbubble](https://discourse.julialang.org/u/sunbubble)\
**Post date:** [July 19, 2021, 7:38am UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/26 "2021-07-19T07:38:26Z")

</div>

I believe implementing an ArcBall camera is doable, since you can copy an exiting version or follow a tutorial, e.g. [OpenGL Programming/Modern OpenGL Tutorial Arcball - Wikibooks, open books for an open world](https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Arcball).  
Obviously, any camera controls is most powerful when you can interact with the objects in the scene. In the case of the video I posted, I imagine what is happening is that the clicking, is moving the found intersection point to the center of the arcball (i.e. the center of rotation), and maybe some other shenanigans.  
I’m by no means an expert in these things, but there’s quite some literature on this type of stuff online. Hope this helps.

---

<div class="post-metadata">

**Author:** ![klafyvel](https://avatars.discourse-cdn.com/v4/letter/k/a587f6/32.png) [@klafyvel](https://discourse.julialang.org/u/klafyvel)\
**Post date:** [July 19, 2021, 8:59am UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/27 "2021-07-19T08:59:16Z")

</div>

Hi, thank you for your hard work on Makie, it makes my everyday life better !

LaTeX rendering is a big improvement, thanks a lot for that. However I’m struggling to make it work with annotations. For example, this code does not render the output as expected :

```julia
annotations([L"\tau=1ns"], [Point(1,2)],align=(:left,:bottom))

```

Am I missing something ?

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [July 19, 2021, 9:38am UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/28 "2021-07-19T09:38:25Z")

</div>

Try this `text([L"\tau=1ns"], position = [Point(1,2)],align=(:left,:bottom))`. The `annotations` method was special once but isn’t anymore, it’s just `text` and seems to have an unnecessary convert to `String` arguments anyway.

 ![grafik](https://global.discourse-cdn.com/julialang/original/3X/e/b/eb7e579e3a0d9430c0365dfaa71eb6bd88857e83.png)

---

<div class="post-metadata">

**Author:** ![klafyvel](https://avatars.discourse-cdn.com/v4/letter/k/a587f6/32.png) [@klafyvel](https://discourse.julialang.org/u/klafyvel)\
**Post date:** [July 19, 2021, 9:55am UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/29 "2021-07-19T09:55:31Z")

</div>

It works fine, thanks !

---

<div class="post-metadata">

**Author:** ![henry2004y](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henry2004y/32/9284_2.png) [@henry2004y](https://discourse.julialang.org/u/henry2004y)\
**Post date:** [August 18, 2021, 3:45pm UTC](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704/30 "2021-08-18T15:45:31Z")

</div>

I ran into the same problem. How are we going to handle this in future versions?

[Previous page](https://discourse.julialang.org/t/ann-makie-jl-0-15/64704.md?page=1)
