From 324e498c63145c6612ba8142ddd4e59670108582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Wed, 1 Jun 2022 03:24:04 +0200 Subject: proj3 --- "fiz/naloga/su\305\276enjstvo/lokacije.c" | 59 +++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 "fiz/naloga/su\305\276enjstvo/lokacije.c" (limited to 'fiz/naloga/suženjstvo/lokacije.c') diff --git "a/fiz/naloga/su\305\276enjstvo/lokacije.c" "b/fiz/naloga/su\305\276enjstvo/lokacije.c" new file mode 100644 index 0000000..bc9e2e1 --- /dev/null +++ "b/fiz/naloga/su\305\276enjstvo/lokacije.c" @@ -0,0 +1,59 @@ +#include // to je bilo napisano 12 ur pred predstavitvijo in NI VARNO +#include // datoteka se mora začeti s prvim frameom - prižgana lučka +#include +#define STR0(x) (x ? x : "") +int main (int argc, char ** argv) { + long double kalibracijske_vrednosti[] = { 14.20, -2.35, 2.25 }; + if (argc < 1+1+7) { + fprintf(stderr, "%s timestamps.txt `grep \"2A1 \" podatki.tsv`\n", STR0(argv[0])); + return 1; + } +#define TIMESTAMPS argv[1] + char * cp; + int merilo_leva_šir = strtol(argv[5], &cp, 10); + cp++; + int merilo_leva_viš = strtol(cp, NULL, 10); + int merilo_desna_šir = strtol(argv[6], &cp, 10); + cp++; + int merilo_desna_viš = strtol(cp, NULL, 10); + int središče_šir = strtol(argv[7], &cp, 10); + cp++; + int središče_viš = strtol(cp, NULL, 10); + int kotna_točka_šir = strtol(argv[8], &cp, 10); + cp++; + int kotna_točka_viš = strtol(cp, NULL, 10); + long double pikslov_v_1m = 10*sqrtl(powl(labs(merilo_leva_šir-merilo_desna_šir), 2)+powl(labs(merilo_leva_viš-merilo_desna_viš), 2)); + fprintf(stderr, "pikslov v 1m je %Lf\n", pikslov_v_1m); + char buf[512]; + fgets(buf, 512, stdin); + int i = 0; + unsigned long int starting_frame; + unsigned int starting_milliseconds; + FILE * timestamps = fopen(TIMESTAMPS, "r"); + while (!feof(stdin) && !ferror(stdin)) { + unsigned long int frame = strtoul(buf, &cp, 10); + if (!i++) { + starting_frame = frame; + char starting_millis[512]; + rewind(timestamps); + for (unsigned int j = 0; j <= frame+1; j++) + fgets(starting_millis, 512, timestamps); + starting_milliseconds = strtoul(starting_millis, NULL, 10); + } + cp++; + long double piksel_šir = strtold(cp, &cp); + cp++; + long double piksel_viš = strtold(cp, NULL); + piksel_šir -= središče_šir; + piksel_viš -= središče_viš; + piksel_viš /= pikslov_v_1m; + piksel_šir /= pikslov_v_1m; + rewind(timestamps); + char millis[512]; + for (unsigned int j = 0; j <= frame+1; j++) + fgets(millis, 512, timestamps); + unsigned int milliseconds = strtoul(millis, NULL, 10); + fprintf(stdout, "%lu\t%u\t%Lf\t%Lf\n", frame - starting_frame, milliseconds - starting_milliseconds, piksel_šir, piksel_viš); + fgets(buf, 512, stdin); + } +} -- cgit v1.2.3