Здравствуйте, jazzer, Вы писали:
J>>>Градусы хороши своей целочисленностью. N>>Не целочисленностью, конечно же — вон Земля наклонена примерно под 23.45 градусов (23 градуса 27 минут). А значительно большей естественностью для человека. Анализировать внутри программы поворот на 30 градусов как-то проще, чем на 0.52 радиана. J>Нет, именно целочисленностью. Всякие градусы типа 45, 90, 180, 360 имеют вполне однозначное толкование, в отличие от иррационального пи, которое непонятно с какой точностью записывать. J>Например, поворот картинки на 180 тривиален, а на пи — попробуй еще разберись, что ошибка в 24-м знаке — это ошибка представления, а не то, что тебе нужно именно на такой вот кривой угод повернуть.
Твоя идея понятна, но не приемлема:
1. То, о чём ты говоришь, фактически означает не "целое число градусов", а "целое конкретное число градусов из набора фиксированных значений, которые имеют свой отдельный смысл" (180 — пол-круга, 90 — четверть круга или прямой угол, и так далее). Потому что поворот на 180, например, чётко определён именно в градусах как половина круга и это имеет смысл тем, что упрощает реализацию; а вот поворот на 25 или 26 градусов у тебя будет одинаково трудоёмок что в радианах, что в градусах.
2. В контексте исходной статьи это всё не имеет значения — задать самолёту разворот на 180 градусов, на 3.14 радиана или 3.15 — всё равно воздушные потоки и прочие левые факторы внесут свою коррективу, и на половине поворота (скорее даже раньше) придётся это исправлять.
J>Естественность для человека тут ни при чем, просто целые радианы практического смысла не имеют никакого, в отличие от целых градусов (именно потому что круг поделили на целое количество частей).
Целые радианы имеют значительно больше практического смысла, чем целые градусы. Радианы не только не зависят от того, сколько у тебя пальцев или чем ты думаешь — они упрощают практически все тригонометрические формулы. Иначе бы их не вводили. А градусы — это индивидуальны.
Не знаю, в курсе ли ты, но есть так называемые "грады", коих в прямом углу не 90, а 100. Они приняты в ряде специфических областей инженерии. И практически они не сильно хуже. А вот радианную меру ты на 1.2 или 0.9 не умножишь — чушь получится.
N>>Ну там системное API, что поделать. N>>Хотя если бы аргументы были гарантированно названы и язык позволял (как C++) — можно было бы писать SysCloseDoor(hDoor, immediately = true, ignore_obstacle = true, lock = false). Я так делаю в Питоне, потому что удобнее.:) хотя в рантайме и чуть дороже. J>Ну так от питона никто скорости и не ждет :) J>так что в питоне все так делают
А в компилируемых языках можно это возложить на компилятор. Просто не припекло.
J>>>Так что мысль вроде как и очевидна, да, видать, лень побеждает — bool же проще сунуть, чем целое перечисление объявлять или вообще специальный полноценный тип ваять. N>>Так её надо побеждать встречной ленью — дебажить полученное.;)) J>не понял, кто в данном случае "встречно ленится"...
Тот, кому это дальше расчищать и по последствиям расчистки — рефакторить.