fixes dihedral angle computation, adds plotting options
This commit is contained in:
parent
07db041c21
commit
c86240455d
2
README
2
README
@ -2,4 +2,4 @@ Pour compiler la première fois : `mkdir build && make'
|
|||||||
Pour recompiler les fois suivantes : `make'
|
Pour recompiler les fois suivantes : `make'
|
||||||
Pour nettoyer les fichiers de compilation : `make clean'
|
Pour nettoyer les fichiers de compilation : `make clean'
|
||||||
Pour exécuter le programme : `LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ ./build/tp1 <obj>'
|
Pour exécuter le programme : `LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ ./build/tp1 <obj>'
|
||||||
Pour faire un bel histogramme coloré : LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ build/tp1 <obj> | util/plot.py [nombre de classes, 10 par défaut]
|
Pour faire un bel histogramme coloré : LD_LIBRARY_PATH=libs/OpenMesh/liblinux/ build/tp1 <obj> | util/plot.py [nombre de classes, 10 par défaut] [min] [max]
|
||||||
|
@ -124,7 +124,7 @@ void stats_dihedral_angles(MyMesh &mesh) {
|
|||||||
mesh.update_normals();
|
mesh.update_normals();
|
||||||
for (size_t i = 0; i < mesh.n_halfedges(); i++) {
|
for (size_t i = 0; i < mesh.n_halfedges(); i++) {
|
||||||
MyMesh::HalfedgeHandle heh = mesh.halfedge_handle(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;
|
std::cout << std::endl;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,9 @@ import sys
|
|||||||
from matplotlib import pyplot as plt
|
from matplotlib import pyplot as plt
|
||||||
|
|
||||||
data = list(map(float, sys.stdin.readline().split()))
|
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):
|
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.text(i, v, str(int(v)), color='darkviolet', ha='center', fontweight='bold')
|
||||||
plt.xticks(ticks=bins,
|
plt.xticks(ticks=bins,
|
||||||
|
Reference in New Issue
Block a user