From c86240455d28d6e51718cae2a155bbd9da3cdfb2 Mon Sep 17 00:00:00 2001 From: ccolin Date: Fri, 2 Oct 2020 14:41:05 +0200 Subject: [PATCH] fixes dihedral angle computation, adds plotting options --- README | 2 +- src/main.cpp | 2 +- util/plot.py | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README b/README index 75629fa..0e654c8 100644 --- a/README +++ b/README @@ -2,4 +2,4 @@ Pour compiler la première fois : `mkdir build && make' Pour recompiler les fois suivantes : `make' Pour nettoyer les fichiers de compilation : `make clean' Pour exécuter le programme : `LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ ./build/tp1 ' -Pour faire un bel histogramme coloré : LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ build/tp1 | util/plot.py [nombre de classes, 10 par défaut] +Pour faire un bel histogramme coloré : LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ build/tp1 | util/plot.py [nombre de classes, 10 par défaut] [min] [max] diff --git a/src/main.cpp b/src/main.cpp index 2153fac..2f4bad2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -124,7 +124,7 @@ void stats_dihedral_angles(MyMesh &mesh) { mesh.update_normals(); for (size_t i = 0; i < mesh.n_halfedges(); i++) { MyMesh::HalfedgeHandle heh = mesh.halfedge_handle(i); - std::cout << mesh.calc_dihedral_angle_fast(heh) * 180.0 / PI << " "; + std::cout << mesh.calc_dihedral_angle_fast(heh) * 180.0 / PI + 180 << " "; } std::cout << std::endl; } diff --git a/util/plot.py b/util/plot.py index 3fd57e8..63c4687 100755 --- a/util/plot.py +++ b/util/plot.py @@ -3,7 +3,9 @@ import sys from matplotlib import pyplot as plt data = list(map(float, sys.stdin.readline().split())) -vals, bins, _ = plt.hist(data, bins=10 if len(sys.argv) == 1 else int(sys.argv[1]), color='deeppink') +vals, bins, _ = plt.hist(data, color='deeppink', + bins=10 if len(sys.argv) == 1 else int(sys.argv[1]), + range=(float(sys.argv[2]), float(sys.argv[3])) if len(sys.argv) == 4 else None) for i, v in zip([a + (b-a) / 2 for a, b in zip(bins, bins[1:])], vals): plt.text(i, v, str(int(v)), color='darkviolet', ha='center', fontweight='bold') plt.xticks(ticks=bins,