Replacement for KmPlot

Percy Camilo Triveño Aucahuasi percy.camilo.ta at gmail.com
Sat Jul 28 11:28:57 UTC 2012


Hi all,

This year I'm working on this GSoC [1] (Replacement for KmPlot) The reasons
behind this motivation are:

1.- We have duplication of features between KmPlot and KAlgebra (for
plotting functions)
2.- In recent years KmPlot has been frozen (with regards to features for
plotting new kind of functions) and
3.- There is a need for a better function plotter.

To introduce this new application (called Khipu) I'll talk of 2 aspects of
this new approach and share my view of what (I think) it would help us to
improve in the math area. First aspect won't be related to technical
aspects (that will be the second) :) ... First aspect is the most important!

First aspect: the main goal of Khipu is to support the teaching process of
math concepts, thats why the main clients of this application are teachers
and this is the most important part, because it will avoid that Khipu
become into a "just a utility for plotting". You know math concepts (and
their properties) are easy to learn if you see it, indeed, I propose this
basic work-flow for the application:

Step 1: Consume a repository/collection* of mathematical objects** (this
step allow to select objects from the repository) then
Step 2: Categorize/group those selected objects
Step 3: Study their specific properties
Step 4: Provide a way to deploy/export the work

*The repository is a collection of math expressions and meta-data that
define each object
**Here, objects are any kind of math concept that can be plotted (specially
functions)

For example, if a teacher want to work with plane curves (conics) he/she
may use the repository of "Famous Conics" and, this way, have all the
objects ready for study (step 1) Later, the teacher can group some objects
with a criteria (his criteria): "This ones will be used for exam 1", "This
others for the class" ... and so on (step 2) Step 3 will depend of what
properties of conics (for each group) he/she wants to study. Step 4 involve
some form of export their work (it could be a snapshots or animations
inside the application): this way he/she can use the output for the class.

Currently[2] there is an implementation for step 2 (and partially: step 1)
I hope you can help me with ideas for step 3 and 4, and if is possible take
advantage of the forums for this task.

Second aspect is the technical part of this replacement process. First
place, I will port all KmPlot's features (that I can) to Khipu: is
important not to drop the work of KmPlot that can be useful.

To avoid the duplication of code: all the features related to
plotting/analysis of objects will be inside analitza (KAlgebra
parser/symbolic library) in a library called analitzaplot: KAlgebra will
use the library for plot some functions too. This library will focus on 4
tasks:

* Manage the core objects (like curves/surfaces/...)
* Analyze those objects (its geometry, math properties, ...)
* Draw/Animate those objects in a decoupled way (just painter/opengl code)
... this way we can use the code on widgets or other kind of GUI controls.
Also, the colors of what be painted (objects and its attributes, drawing
area, ...) will be chosen carefully to respect accessibility: in the same
way you can change the colors of the background area in KmPlot, the library
will expose the necessary API for this kind of customization.
* Manage the repository of objects (GHNS comes to my mind) The text of the
repository files will be translated by our exceptional l10n team. For
example if one repository file contains the words "Spiral of Archimedes"
this should be translated.

Currently Khipu is in playground and analitzaplot is in a branch of
analitza (the branch is called aucahuasi/analitzaplot)

Remember this is a work in process (Khipu and analitzaplot) and even the
library may change right now, however you can see a preview of the API in
[3]

Finally, I hope others applications can use this library to visualize math
concepts (for example: currently many backends of Cantor show only images
and not a widget that improve the graphical result) I ask to you: take a
look in the work and tell me what do you think; I'm very open to listen
others ideas, so please help me with yours.

mkdir khipu-demo
cd khipu-demo/
git clone git://anongit.kde.org/analitza
cd analitza/
git checkout aucahuasi/analitzaplot
mkdir build
cd build/
cmake -DCMAKE_INSTALL_PREFIX=YOUR_KDE_PATH
make install
cd ../..
git clone git://anongit.kde.org/khipu
cd khipu/
mkdir build
cd build/
cmake -DCMAKE_INSTALL_PREFIX=YOUR_KDE_PATH
make install
kbuildsycoca4
src/khipu

Regards,
Percy

[1]
http://www.google-melange.com/gsoc/project/google/gsoc2012/aucahuasi/21002
[2]
http://community.kde.org/GSoC/2012/StatusReports#Percy_Camilo_Trive.C3.B1o_Aucahuasi
[3]
https://projects.kde.org/projects/kde/kdeedu/analitza/repository/entry/analitzaplot/examples/plots3ddemo.cpp?rev=aucahuasi%2Fanalitzaplot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-edu/attachments/20120728/237b3872/attachment.html>


More information about the kde-edu mailing list