avva: (Default)
[personal profile] avva


Для программистов. Сегодня час искал баг в старом коде (задолго до меня написан). Код рассчитывает, на каком месте на экране - в пикселях - поставить цель, чтобы она была на заданном угловом расстоянии от центра экрана, с точки зрения наблюдателя на расстоянии ровно в метр от экрана точно по центру. Известны размеры экрана в пикселях и в миллиметрах.

Это чистая и очень простая тригонометрия. Но у меня получается на один пиксель разница с тем, что код раньше посчитал и записал в лог. Никак не могу понять, откуда этот пиксель берется. Округление там в другую сторону. Вычисления все в плавающей точке. Из-за того, как структурирован код и передача данных между компонентами, вычисления проводятся немного муторно, по сути лишний раз делается тангенс/арктангенс в середине. Может, это как-то накапливает ошибку? - но вроде не должно настолько.

Я напихал всюду отладочные сообщения, перезапустил, сравнил все с ручным пересчетом... и наконец нашел в самом последнем месте, которое и в голову не приходило. См. картинку.

Date: 2024-07-04 10:41 am (UTC)
dorimena: (Default)
From: [personal profile] dorimena
да, без очков не только 0 от 8 не отличить, но и от 6 порой с 8 путаешь

April 2025

S M T W T F S
   1 2 3 45
6 7 89 10 11 12
1314 15 1617 1819
2021 22 23242526
27282930   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 23rd, 2025 04:09 pm
Powered by Dreamwidth Studios