50 lines
2.5 KiB
Python
50 lines
2.5 KiB
Python
from utils.math import utils
|
|
from utils.files import output
|
|
from utils.files import parsers
|
|
from integration_tests import data_test
|
|
|
|
def get_raw_data(obj, ndigits):
|
|
colones = ["X (en mm)", "Y (en mm)", "Z (en mm)", "teta (en rad)", "rayon (en mm)","Xi-Xmoy","Yi-Ymoy"]
|
|
data = {}
|
|
for colone in colones:
|
|
data[colone] = []
|
|
for discrete_values in obj.get_discrete_vertices(1):
|
|
mean_x ,mean_y, mean_z = utils.get_x_y_z_mean(discrete_values)
|
|
for x,y,z in discrete_values:
|
|
data["X (en mm)"].append(round(x, ndigits))
|
|
data["Y (en mm)"].append(round(y, ndigits))
|
|
data["Z (en mm)"].append(round(z, ndigits))
|
|
data["teta (en rad)"].append(round(utils.get_teta_from_x_y(x,y,mean_x,mean_y), ndigits))
|
|
data["rayon (en mm)"].append(round(utils.get_radius_from_x_y(x,y,mean_x,mean_y), ndigits))
|
|
data["Xi-Xmoy"].append(round(x-mean_x, ndigits))
|
|
data["Yi-Ymoy"].append(round(y-mean_y, ndigits))
|
|
return data
|
|
|
|
def get_discrete_data(obj, ndigits):
|
|
colones = ["X moy (en mm)", "Y moy (en mm)", "Z moy (en mm)","Rayon moyen (en mm)","Rayon ecart type (en mm)"]
|
|
data = {}
|
|
for colone in colones:
|
|
data[colone] = []
|
|
for discrete_values in obj.get_discrete_vertices(1):
|
|
x,y,z = utils.get_x_y_z_mean(discrete_values)
|
|
data["X moy (en mm)"].append(round(x, ndigits))
|
|
data["Y moy (en mm)"].append(round(y, ndigits))
|
|
data["Z moy (en mm)"].append(round(z, ndigits))
|
|
data["Rayon moyen (en mm)"].append(round(utils.get_mean_radius(discrete_values), ndigits))
|
|
data["Rayon ecart type (en mm)"].append(round(utils.get_radius_std(discrete_values), ndigits))
|
|
return data
|
|
|
|
|
|
def main():
|
|
obj = parsers.parse_obj_file("datasets/Barette/3 - BARETTE v1.obj",normalised=True)
|
|
data = get_raw_data(obj, 6)
|
|
output.save_output_file('analyse_brute.txt', output.format_data(data, '\t', ["X (en mm)", "Y (en mm)", "Z (en mm)", "teta (en rad)", "rayon (en mm)","Xi-Xmoy","Yi-Ymoy"] ))
|
|
data_test.check_raw_data("datasets/Barette/BARETTE_Delta 1,0_analyse brute.txt", "analyse_brute.txt",eps=0.001)
|
|
|
|
data = get_discrete_data(obj, 6)
|
|
output.save_output_file('analyse_rayon.txt', output.format_data(data, '\t', ["X moy (en mm)", "Y moy (en mm)", "Z moy (en mm)","Rayon moyen (en mm)","Rayon ecart type (en mm)"] ))
|
|
data_test.check_discrete_data("datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt", "analyse_rayon.txt",eps=0.001)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |