Giter Site home page Giter Site logo

Comments (2)

RalphSteinhagen avatar RalphSteinhagen commented on May 23, 2024

Thanks a lot for the video! Looks very interesting. 👍

[..] I'd expect the line to start at the first valid point, but for some reason, it starts from the bottom of the screen. (The bottom is cut-off, so it's not visible, but it did come in from the bottom edge) [..]

For the time being that's was/is the necessary, defined and intended behaviour (ie. not 'incorrectly' but 'by design').

A bit of history/rationale on this:

more.. _we noticed that the JavaFX rendering pipeline crashes when fed with too many NaNs. In the olden days (Swing) NaNs used to stop/restart the polyline rendering. Since we didn't want to also touch the C/C++ part of the JVM, we tried to reimplement the line start/stop functionality in the user code but the performance was horrid. Thus we deliberately dropped this and decided to draw vertical 'NaN' values to the bottom of the canvas which works for our use cases._

Unless things have changed, this may be a necessary compromise (N.B. backward comatibility to JDK8 & and JDK11+JFX12 is for the time being an aspect in our community).

Nevertheless, you may overwrite the corresponding routines. The code that would need to be modified is here and here (essentially just comment out).

regarding performance: we are reworking the hash map and recomputation of some aspects of the axes and gained a bit (not yet committed, but who would have thought that the JDK ConcurrentHashMap is slower than a custom written routine... 😮 ).

from chart-fx.

ennerf avatar ennerf commented on May 23, 2024

Thanks for the info. I don't remember seeing anything related to this in the changelogs for OpenJFX 12 and 13. Have you considered filing a bug report? Now that OpenJFX is independent of the JDK there is a good chance that this could be addressed comparatively quickly. You could always add a runtime constant for maintaining backwards compatibility.

The JDK implementations are general purpose and may have to support legacy interfaces that are difficult to implement concurrently. If you have a very specific use case there are often much better alternatives such as the specialized queues in JCTools. Apparently they have some maps as well, but I've never tested them.

from chart-fx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.