|
@@ -12,23 +12,28 @@ Pysketcher can typically be used to draw figures like
|
|
|
Such figures can easily be *interactively* made using a lot of drawing programs.
|
|
Such figures can easily be *interactively* made using a lot of drawing programs.
|
|
|
A Pysketcher figure, however, is defined in terms of computer code. This gives
|
|
A Pysketcher figure, however, is defined in terms of computer code. This gives
|
|
|
a great advantage: geometric features can be parameterized in term
|
|
a great advantage: geometric features can be parameterized in term
|
|
|
-of variables, as here:
|
|
|
|
|
|
|
+of variables. Geometric variations are then trivially generated, and
|
|
|
|
|
+complicated figures can be built as a hierarchy of simpler elements.
|
|
|
|
|
+
|
|
|
|
|
+Here is a very simple figure that illustrates how geometric features are
|
|
|
|
|
+parameterized by variables (H, R, L, etc.):
|
|
|
|
|
|
|
|
<!-- <img src="doc/src/tut/fig-tut/vehicle0_dim.png" width=600> -->
|
|
<!-- <img src="doc/src/tut/fig-tut/vehicle0_dim.png" width=600> -->
|
|
|

|
|

|
|
|
|
|
|
|
|
-One can then quickly change parameters, here to
|
|
|
|
|
|
|
+One can then quickly change parameters, below to
|
|
|
`R=0.5; L=5; H=2` and `R=2; L=7; H=1`, and get new figures that would be
|
|
`R=0.5; L=5; H=2` and `R=2; L=7; H=1`, and get new figures that would be
|
|
|
tedious to draw manually in an interactive tool.
|
|
tedious to draw manually in an interactive tool.
|
|
|
|
|
|
|
|
<!-- <img src="doc/src/tut/fig-tut/vehicle_v23.png" width=800> -->
|
|
<!-- <img src="doc/src/tut/fig-tut/vehicle_v23.png" width=800> -->
|
|
|

|
|

|
|
|
|
|
|
|
|
-Another major feature of Pysketcher is the ability to let animate the
|
|
|
|
|
-sketch. Here is an example of a very simple vehicle on a bumpy road,
|
|
|
|
|
|
|
+Another major feature of Pysketcher is the ability to let the
|
|
|
|
|
+sketch be dynamic and make an animation of the time evolution.
|
|
|
|
|
+Here is an example of a very simple vehicle on a bumpy road,
|
|
|
where the solution of a differential equation (upper blue line) is fed
|
|
where the solution of a differential equation (upper blue line) is fed
|
|
|
back to the sketch to make a vertical displacement of the spring and
|
|
back to the sketch to make a vertical displacement of the spring and
|
|
|
-other objects in the vehicle, [view animation](http://hplgit.github.io/bumpy/doc/src/mov-bumpy/m2_k1_5_b0_2/index.html) (the animation was created by
|
|
|
|
|
|
|
+other objects in the vehicle. [View animation](http://hplgit.github.io/bumpy/doc/src/mov-bumpy/m2_k1_5_b0_2/index.html) (the animation was created by
|
|
|
[this Pysketcher script](https://github.com/hplgit/bumpy/blob/master/doc/src/fig-bumpy/bumpy_road_fig.py)).
|
|
[this Pysketcher script](https://github.com/hplgit/bumpy/blob/master/doc/src/fig-bumpy/bumpy_road_fig.py)).
|
|
|
|
|
|
|
|
<!-- <img src="http://hplgit.github.io/bumpy/doc/src/mov-bumpy/m2_k1_5_b0_2/tmp_frame_0030.png" width=600> -->
|
|
<!-- <img src="http://hplgit.github.io/bumpy/doc/src/mov-bumpy/m2_k1_5_b0_2/tmp_frame_0030.png" width=600> -->
|
|
@@ -54,16 +59,32 @@ can be created by the program [`examples/pendulum.py`](https://github.com/hplgit
|
|
|
### Technology
|
|
### Technology
|
|
|
|
|
|
|
|
Pysketcher applies Matplotlib to make the drawings, but it is quite
|
|
Pysketcher applies Matplotlib to make the drawings, but it is quite
|
|
|
-easy to replace the backend `MatplotlibDraw.py` by similar code utilizing
|
|
|
|
|
-TikZ or another plotting package. The Pysketcher software is a thin
|
|
|
|
|
-layer basically constructing a tree structure of elements in the
|
|
|
|
|
-sketch. A lot of classes are offered for different type of basic
|
|
|
|
|
|
|
+easy to replace the backend `MatplotlibDraw.py` by similar code
|
|
|
|
|
+utilizing TikZ or another plotting package. The Pysketcher software is
|
|
|
|
|
+a thin layer basically constructing a tree structure of elements in
|
|
|
|
|
+the sketch. A lot of classes are offered for different type of basic
|
|
|
elements, such as Circle, Rectangle, Text, Text with arrow, Force,
|
|
elements, such as Circle, Rectangle, Text, Text with arrow, Force,
|
|
|
-arbitrary curve, etc.
|
|
|
|
|
-Complicated figures can be created by sticking one
|
|
|
|
|
-figure into another
|
|
|
|
|
-(i.e., hierarchical building of figures by sticking one tree
|
|
|
|
|
-structure into another).
|
|
|
|
|
|
|
+arbitrary curve, etc. Complicated figures can be created by sticking
|
|
|
|
|
+one figure into another (i.e., hierarchical building of figures by
|
|
|
|
|
+sticking one tree structure into another).
|
|
|
|
|
+
|
|
|
|
|
+### Install
|
|
|
|
|
+
|
|
|
|
|
+Pysketcher is pure Python code and
|
|
|
|
|
+works with Python version 2 and 3. Just do the standard
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+Terminal> sudo python setup.py install
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+Pysketcher demands installation of the following packages:
|
|
|
|
|
+
|
|
|
|
|
+ * Matplotlib (`sudp pip install matplotlib`)
|
|
|
|
|
+ * Future (`sudo pip install future`)
|
|
|
|
|
+ * NumPy (`sudo pip install numpy`)
|
|
|
|
|
+
|
|
|
|
|
+The `Spline` object in Pysketcher also requires SciPy (`sudo pip install scipy`).
|
|
|
|
|
|
|
|
### Citation
|
|
### Citation
|
|
|
|
|
|