Open dhiahassen opened 4 years ago
Hi dhiahassen
Thank you for your interest in my project. The answer was late because I found the message late.
Many of your ideas are interesting!!
Allow semantics functions, like "sin(x)" instead of Math.sin(x) or array of integer, this can be easily implemented in "5 mins" using Math.js
=>
I was actually thinking about semantic functions support. I want to support things like "sin (x)" or latex syntax. We can also use Math.js to support this. But I want to implement it with a structure that I can replace later. as the project is upgraded, I thought I could use other libraries or implement my own when I needed multiple additional features (such as supporting latexes).
Add SVG support, by adding SVG renderer, using this library for example
=>
If Plotta.js also supports webgl or svg it will definitely get better But plotta.js is redrawn each time an event occurs and supports 60 frames.
That means you can redraw 60 times per second. In this situation, After being drawn with canvas, then converting to svg or webgl, I'm worried about performance issues.
So instead of using the library to convert, it's a good idea to split the view into different types depending on the type when creating plotta objects.
I didn't think about it in detail, We can also support multiple types by separating the model and view by abstracting the following parts(ex.):
const ViewHelperFactory = {
Create(type) {
//
switch (type) {
case SVG:
return new SvgHelper();
case WEBGL:
return new WebGLHelper();
case CANVAS:
default:
return new CanvasHelper();
}
}
};
I think it is very good to use a library to support features like SaveAsSvg / Export2Svg. In fact, we will provide conversion APIs like SaveAsPng and SaveAsPdf.
Also, I would like to know if it is possible to move the "camera" around , for things like dragging with the mouse ...
=>
It's not supported yet. However, there is an API that can be moved and an internal implementation. If i implement additional event handeler, i can add feature
I would be grateful if you would write description or diagrams.
English is not my main language. There may be some misinterpretations, and if there is anything you need to fix, please advise.
I sincerely welcome you to participate in this project.
You are the first person to raise an issue on my project!! very very thank you :D I appreciate your feedback and will work harder on my project!!
Please contribute to the part you want to contribute according to the commit rules and send a pull request.
First, I would like to thank you for this open-source effort , second i would like to comment about the fact that there is only one good javascript plot library ( function-plot ) and the rest each is missing some features, after suffering a lot with that fact, I decided to make my own, but it is better to join an open source project, so there I am
I would like to join this project, my initial thoughts are :
Add SVG support, by adding SVG renderer, using this library for example https://github.com/desmosinc/canvas2svg
Allow semantics functions, like "sin(x)" instead of Math.sin(x) or array of integer, this can be easily implemented in "5 mins" using Math.js https://mathjs.org/
Add WebGL support, can be done easily by a canvas-to-WebGL library like the following : https://github.com/greggman/webgl-canvas-2d https://github.com/andreasgal/canvas.webgl https://github.com/karellodewijk/canvas-webgl https://github.com/jagenjo/Canvas2DtoWebGL
we can allow switching internal renderer to support SVG and WebGL
I would like you to provide some description/diagrams for people that want to join the project so that they understand the architecture and they continue from were you possible stop ( trust me found thousands of leftover plotting libraries of javascript form which no one can continue )
Finally, allow me to introduce myself, I have C++/Javascript/Python/Assembly background
Thank you again