Topic: Slope Field Request

Is there any plan to create slope fields in Graph? I use graph a ton to make my handouts for my AP Calculus classes. Having a slope field feature would be a great addition to the program. If I knew anything about creating a plugin, I would try and do so and share it. However I'm finding it difficult to begin doing so with the limited coding knowledge I have.
If there's no plan to incorporate plotting slope fields in graph, do you think you could point me in the direction of some resources to teach oneself to do so?

Thanks,
Marco

Re: Slope Field Request

Plotting Slope Fields using Graph 4.4.2
(Parametric representations for slope fields)

Post's attachments

example.png, 6.93 kb, 500 x 500
example.png 6.93 kb, 49 downloads since 2017-01-27 

Re: Slope Field Request

I don't currently have any plans for implementing slope fields in Graph. But I can see that benice has found a way to do it with Graph.

If you want you could create a plugin that creates an interface for plotting slope fields but just does the same as the examples created by benice. A good starting point would be the Circle.py example plugin installed with Graph. It creates a dialog for inserting a circle, but it is actually just uses a parametric function.

Re: Slope Field Request

Ivan,
     I have attempted a plugin based on the Circle.py and Benice's file. I appreciate your direction and Benice's file to work from.
     The only issue is that when zoomed in, the slope segments sometimes join together. I don't know how to fix that. I also noticed that I can not append the attribute of step size to a parametric function. Is this possible? If so I was not able to find it in the documentation.
      If anyone can figure out how to make sure the slope segments don't join when zooming in, and tell me how to fix it I would like to fix that bug.

-Marco

Post's attachments

Attachment icon Slopefield.py 4.28 kb, 52 downloads since 2017-04-25 

Re: Slope Field Request

I think I fixed the connecting segments. Check out the following plugin. I changed the draw type to dots, and figured out the Func.Steps issue.

Post's attachments

Attachment icon Slopefield.py 4.4 kb, 56 downloads since 2017-04-25 

6 (edited by marcorainaldi 2017-04-27 18:22:28)

Re: Slope Field Request

I added the ability to define the region in the plane for which the slope field will be plotted. The user can now enter the x-min, x-max, y-min, and y-max of the rectangle in which the slope field will be plotted.

In order for the slope segments to be of uniform length, the graph must be zoomed square (Ctrl+Q)

Post's attachments

Attachment icon Slopefield.py 5.39 kb, 31 downloads since 2017-04-27 

Re: Slope Field Request

I am glad you figured it out. Draw type needs to be Dots in this case. Lines will connect all the points, while the default Automatic tries to be smart and connect them if it thinks it makes sense.

It is a really impressive plugin you have created.

Re: Slope Field Request

Ivan, I appreciate your help in directing me to the circle plugin to create the slope field plugin! I enjoyed making a new plugin!

I'd really like to take a shot at making more plugins, but I haven't had luck in digging up examples of the vcl components I'd like to use in a dialog like the ones I mentioned above.

I was wondering if you could post a couple of rudimentary plugins in Python that have dialogs that use the vcl modules that are used in the built in dialogs of inserting a point series and inserting a function. I've been searching on my own, without luck. Granted, I'm no software engineer, and have beginner level programming experience.

If you could produce a couple of plugins to work off of like the circle plugin, that would be great! If not, I understand.

Thanks for making such a great program, and making plugins possible!

Re: Slope Field Request

There are 3 other plugins installed with Graph that uses dialogs: Revolution.py, Statistics.py, Transform.py

I assume you know that there is a help file with scripting engine documentation installed with Graph. You can also find it online:
http://www.padowan.dk/doc/PluginDoc/

Embarcadero has a lot of documentation for the VCL:
http://docwiki.embarcadero.com/VCL/en/Main_Page

Unfortunately all documentation and examples for the VCL is in either C++ or Delphi. The VCL bindings for Python was something I made for the scripting engine in Graph. I understand that the VCL documentation can be difficult when you don't have experience with the library.

If you are having trouble with something in the scripting engine or VCL, please ask.