[genius] Tue Apr 18 12:36:00 2017 Jiri (George) Lebl <jirka 5z com>
- From: George Lebl <jirka src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [genius] Tue Apr 18 12:36:00 2017 Jiri (George) Lebl <jirka 5z com>
- Date: Tue, 18 Apr 2017 17:35:51 +0000 (UTC)
commit 481d6b889bac065d9086b24c39a01ca35bb09e80
Author: Jiri (George) Lebl <jiri lebl gmail com>
Date: Tue Apr 18 12:36:21 2017 -0500
Tue Apr 18 12:36:00 2017 Jiri (George) Lebl <jirka 5z com>
* examples/vibrating-drum-modes.gel: optionally draw node lines.
ChangeLog | 4 +++
examples/vibrating-drumhead-modes.gel | 39 ++++++++++++++++++++++++++++++++-
2 files changed, 42 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 77185e3..a6dde3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Apr 18 12:36:00 2017 Jiri (George) Lebl <jirka 5z com>
+
+ * examples/vibrating-drum-modes.gel: optionally draw node lines.
+
Mon Apr 17 13:17:45 2017 Jiri (George) Lebl <jirka 5z com>
* examples/vibrating-drumhead-modes.gel: again do 10 r increments,
diff --git a/examples/vibrating-drumhead-modes.gel b/examples/vibrating-drumhead-modes.gel
index 71a7e8a..71af94f 100644
--- a/examples/vibrating-drumhead-modes.gel
+++ b/examples/vibrating-drumhead-modes.gel
@@ -28,33 +28,55 @@ knm = [2.4048, 5.5201, 8.6537
3.8317, 7.0156, 10.1735
5.1356, 8.4172, 11.6198];
+node_lines = null;
+
+function node_circle(r) = r*[cos(0:2*pi/ceil(r*40):2*pi);sin(0:2*pi/ceil(r*40):2*pi);0]';
+
if the_answer == 1 then (
n = 0;
k = knm@(n+1,1);
) else if the_answer == 2 then (
n = 0;
k = knm@(n+1,2);
+ node_lines@(1) = node_circle(knm@(n+1,1)/k);
) else if the_answer == 3 then (
n = 0;
k = knm@(n+1,3);
+ node_lines@(1) = node_circle(knm@(n+1,1)/k);
+ node_lines@(2) = node_circle(knm@(n+1,2)/k);
) else if the_answer == 4 then (
n = 1;
k = knm@(n+1,1);
+ node_lines@(1) = [0,-1,0;0,1,0];
) else if the_answer == 5 then (
n = 1;
k = knm@(n+1,2);
+ node_lines@(1) = [0,-1,0;0,1,0];
+ node_lines@(2) = node_circle(knm@(n+1,1)/k);
) else if the_answer == 6 then (
n = 1;
k = knm@(n+1,3);
+ node_lines@(1) = [0,-1,0;0,1,0];
+ node_lines@(2) = node_circle(knm@(n+1,1)/k);
+ node_lines@(3) = node_circle(knm@(n+1,2)/k);
) else if the_answer == 7 then (
n = 2;
k = knm@(n+1,1);
+ node_lines@(1) = (1/sqrt(2))*[-1,-1,0;1,1,0];
+ node_lines@(2) = (1/sqrt(2))*[1,-1,0;-1,1,0];
) else if the_answer == 8 then (
n = 2;
k = knm@(n+1,2);
+ node_lines@(1) = (1/sqrt(2))*[-1,-1,0;1,1,0];
+ node_lines@(2) = (1/sqrt(2))*[1,-1,0;-1,1,0];
+ node_lines@(3) = node_circle(knm@(n+1,1)/k);
) else if the_answer == 9 then (
n = 2;
k = knm@(n+1,3);
+ node_lines@(1) = (1/sqrt(2))*[-1,-1,0;1,1,0];
+ node_lines@(2) = (1/sqrt(2))*[1,-1,0;-1,1,0];
+ node_lines@(3) = node_circle(knm@(n+1,1)/k);
+ node_lines@(4) = node_circle(knm@(n+1,2)/k);
) else (
# Superposition
n = -1; # signals superposition
@@ -76,6 +98,14 @@ if the_answer == 1 then (
k3 = knm@(n3+1,1);
);
+if not IsNull(node_lines) and
+ 1 == AskButtons("Draw node lines over the graph?",
+ "yes", "no") then (
+ draw_node_lines = true
+) else (
+ draw_node_lines = false
+);
+
SurfacePlotDrawLegends = false; # don't draw the legend
PlotWindowPresent(); # Make sure the window is raised
@@ -95,7 +125,14 @@ if n >= 0 then (
);
# Plot the data
- SurfacePlotData(data,[-1,1,-1,1,-1,1])
+ PlotCanvasFreeze();
+ SurfacePlotData(data,[-1,1,-1,1,-1,1]);
+ if draw_node_lines then (
+ for nline in node_lines do (
+ SurfacePlotDrawLine(nline,"color","blue","thickness",3)
+ )
+ );
+ PlotCanvasThaw();
)
) else (
for t=0.0 to 30.0 by 0.03 do (
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]