Giter VIP home page Giter VIP logo

graph.tk's Introduction

Graph.tk is being rewritten from scratch (again), and that new version hasn't been released publicly yet. The code is not available either. So, development on this git repository has ended, because the new version will be much, much better.

The math CAS code for the new version is available under javascript-cas, which is currently being worked on so isn't really suitable as a library for other things yet.

Graph.tk is a web application that graphs, solves, simplifies, integrates and differentiates expressions. Currently, it can differentiate most of the functions it knows, but there are many bugs. It cannot expand or factorize properly yet, so it cannot find inverses well, or solve equations. It can currently solve already factorized expressions like: 0=(x^2 /12-log(2))*(x-1)(x+3).

Try it out

graph.tk is the website which this code is used on.

Requirements:

  • JQuery
  • MathQuill
  • A browser that supports the html5 canvas tag.

More information about this application.

Stats

  • 1.6M+ functions graphed.

Known Bugs

  • Some of the derivitives it finds are incorrect.
  • Cannot solve x+x=0, but can solve 2x=0.

Things planned

  • Access external data? csv, fft, images, stock market data
  • 3D! the whole graph thing rotates in an animation to become a flat plane, and then the 3d function is plotted.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

graph.tk's People

Contributors

aantthony avatar jedediah avatar karlcow avatar laughinghan avatar whitmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graph.tk's Issues

.htaccess

Hello!

I don't mind the .htaccess in there, but it'd be much better if it only had options for graph.tk (the app not the domain!) and not general site-wide options like icons and error pages.

Plotting points

It would be useful if points could be plotted. I guess this is pretty straightforward.

Function array bug

After deleting a function in the middle, functions below it cannot be edited. This should be an easy one to fix, but I wrote it here so I don't forget.

How to avoid vertical lines for undefined x-values?

If you plot a graph, say (x+3)/(x-2) you have an undefined value at -2. This should not be drawn, however, we get a vertical line: http://www.gute-mathe-fragen.de/?qa=blob&qa_blobid=18172464407364120737

Another example, even worse: x+tan(x)
http://www.gute-mathe-fragen.de/?qa=blob&qa_blobid=8602167692544029133

This an important issue as users might think there is some value defined.

How can we solve that?

PS: I am ready to donate some money if that could be solved. As I said, that is a very important issue.

3D!

For example if you wanted to look at the particle projection of something in 3D.
It will be viewed in 3D too. Check these out: http://url3.tk/exp.png and http://url3.tk/stereo/
This would require adding support for functions returning vectors, or maybe more easily parametric equations of time.

Would this be a waste of time? Any ideas anyone?

Non-uniform Scaling.

How should it be done? What buttons, mouse movements,...

  • Hold Command/Control to draw a rectangle that will be the new viewport?
  • Auto Zoom? Probably a bad idea.

Settings Panel

Config:

  • Text size
  • Whether to show text for yc, xc, maxima & minima, inflection points etc.
  • Future: Load plugins/modules. (for the CAS)

What else?

Suggestions

Sometimes scrolling in and out of functions can be a little bit confusing as it scrolls in very fast.

Buffer an image which is larger than the current screen size. That way when someone moves the graph, there is a picture to display. (This might slow it down a bit...)

Finally, this might be worth a look over: http://pagespeed.googlelabs.com for slow connections, compression would REALLY help loading time.

Scum at Facebook

Facebook has been saying that the domain graph.tk has been reported as abusive by its users, which means people can't use the "Like" button, or post anything containing links to http://graph.tk/, and our Facebook page is locked to being blank (I'm guessing because it detects "graph.tk" being the title.)

Either we have to use a new domain (any ideas?) or someone will have to convince the scum at Facebook to unblock it.

http://www.facebook.com/l.php?u=http%3A%2F%2Fgraph.tk%2F

By the way, regarding Facebook, today is defriend today: http://www.huffingtonpost.com/2011/03/04/defriend-day-etiquette-wh_n_831726.html

Coords

It would be more useful if instead of displaying the mouse coordinates, it locked/snapped to points on the graph, so that you could get values off the plot.

Manually set window region

Could be part of the GUI interface or via the command line input.

I tried looking through the source to see if this was already implemented/what the command was and I could not find it.

Solving x^2 equations

When using the inverse (square root) we get a plus or minus. Should we use a ± operator, or build in support for arrays that would work like this?:

1+[2,3]+[3,4] = [3,4]+[3,4]=[6,8]

±x=[x,-x]

(the first value is the primary value which will be used if a function is required, like the .f for a graph object.)

k="plot"

I do not know why. It should be undefined.

max function doesn't work

I tried to plot max(x, 2) but it draws nothing.
But min(x, 2) works fine.

By the way, thank you for providing such a convenient tool!

x^2(x)

It thinks x is meant to be a function.

Arrays

[1,2,3] doesn't simplify properly since it can be eval'ed to eval("1,2,3") = 3.

It should work like:
sin([1,2,3])+[1,2,3] = [sin(1) sin(2) sin(3)] +[1,2,3]=[sin(1)+1....]

app.empty() not removing all plots [Firefox for Mac 16.0.1]

Seems this loop has some problems to remove all the graphs:

for(var i=0;i<graphs.length;i++){
    app.ui.colors.free.push(graphs[i].color);
    graphs.splice(i,1);
}

This change works fine:

for (n in graphs){
    app.ui.colors.free.push(graphs[n].color);
}

graphs = {};

P.S.: change above fails, this one seems good though

for(n=0;n<graphs.length;n++){
    app.ui.colors.free.push(graphs[n].color);
}
graphs = [];

Annoying errors

When graphing:

\frac{d}{dx}ln\left(\right)

There is an error:

undefined: {"stack":"TypeError: Cannot read property 'type' of undefined
    at compile (http://url3.tk/graph.tk/min/be61b5d.js:6228:10)
    at HTMLElement.<anonymous> (http://url3.tk/graph.tk/min/be61b5d.js:5724:31)
    at HTMLElement.<anonymous> (http://url3.tk/graph.tk/min/be61b5d.js:17:1034)
    at HTMLElement.<anonymous> (http://url3.tk/graph.tk/min/be61b5d.js:16:30197)","arguments":["type",null],"type":"non_object_property_load","message":"Cannot read property 'type' of undefined"}

m: Atomic weights

M: Hassium it got 269 (wikipedia says so) not 277 as atomic weight ;).

Cube roots

Theres no way to type a cube root, and (-8)^(1/3) won't work.

Language files missing

It tries to access /langs/en-gb.js for me. It would maybe be nicer if all languages were stored in one javascript file. That would also allow it to be cached via the html5 cache manifest.

Opera Buttons

Buttons don't display the correct background position in Opera. This is probably because of the input[blah=x] stuff

iPhone and Android support

I can do it for the iPhone, but someone else will have to test it on and Android phone since I can only use the simulator.

Need to push the beta

The old version is pretty bad. Anything that needs to be done before release? Otherwise I think I should change it ASAP.

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.