Topic: Feature Suggestion

I think a useful feature would be more automated "Insert function" features like how you can insert a function's derivative function automatically. For example, an option to insert f''(x) or higher derivatives, without having to make the first derivative function first and then take it again.

Another example would be to automatically insert a Taylor series by choosing a function, the order of the series, and the point to center the series on. Finding the curvature of a function is another example.

Perhaps users could even enter their own custom automated functions, similarly to the way you can insert custom trendlines. For example, you could automate inserting the curvature function of a function by creating an option that takes an existing function and creates a new function:

k(x)=y''/(1+(y')^2)^(3/2)

This feature would be useful for automatically inserting things like involutes for parametric functions, or arclength functions (using the numerical integration feature).

Re: Feature Suggestion

I think all of these suggestions can be implemented as plugins through the scripting engine in Graph 4.4, which is still in beta test. You can try writing the plugins yourself. Else I will look into it when Graph 4.4 has been released.

Re: Feature Suggestion

Thanks! I didn't know about the plugins, but I'm playing around with them now. If I manage to put together anything useful I'll certainly be sure to share it with the Graph community.

By the way...I've noticed that the "Insert circle..." plugin doesn't work on the computer I'm using. Does anyone else have this problem also? I get the following error(s) in the console:

Traceback (most recent call last):
  File "C:\Program Files\Graph\Plugins\Circle.py", line 36, in OnOk
    Graph.FunctionList.append(Func)
  File "C:\Program Files\Graph\Lib\Graph.py", line 164, in append
    Data.InsertChild(self.node, GetBaseObject(value), -1)
  File "C:\Program Files\Graph\Lib\Graph.py", line 139, in GetBaseObject
    return GetBaseObject(o.SWIGSharedPtrUpcast(o)) if "SWIGSharedPtrUpcast" in o.__swig_getmethods__ else o
  File "C:\Program Files\Graph\Lib\Graph.py", line 139, in GetBaseObject
    return GetBaseObject(o.SWIGSharedPtrUpcast(o)) if "SWIGSharedPtrUpcast" in o.__swig_getmethods__ else o
  File "C:\Program Files\Graph\Lib\Graph.py", line 139, in GetBaseObject
...repeat that about a hundred times...
TypeError: in method 'TParFunc_SWIGSharedPtrUpcast', argument 1 of type 'boost::shared_ptr< TParFunc >'

I'll try it again on another computer and see if the same thing happens.  I'm using Python 3.1.4.

Re: Feature Suggestion

Hmm...okay I'm trying it on another computer now, and I have Python 3.2.2. On this computer the Plugins menu doesn't show up in graph, but I can get the console up by pressing F11. I've just updated to the latest build. Any ideas?

Re: Feature Suggestion

The newest beta version of Graph 4.4 requires Python 3.2.x while older versions used Python 3.1.x. Unfortunately it is not possible to make Graph work with several versions of Python. It has to be compiled against a specific Python version.

I cannot explain why it doesn't work for you. If you can see the console the plugins should run and show up in the Plugins menu.

Which version of Windows are you using?

Re: Feature Suggestion

Both computers were running Windows XP.

On the first computer I updated both graph and Python to the latest versions, and now it's working properly.

On the second computer, I can only get the console still, but not the Plugins menu or anything else.

Re: Feature Suggestion

Good news...I got it working. I reinstalled Graph in a different location than before, and now everything's working properly.

Maybe it only works if it's installed in Program Files? I had it somewhere else before. Anyway, glad to have everything working properly now!

Re: Feature Suggestion

The directory Graph is installed in should not matter. But an earlier beta version of Graph might have had problems with the plugin support. That is not uncommon.