Войти
СайтФорумОбсуждение

Заявки на публикацию статей. (11 стр)

Страницы: 110 11 12 1315 Следующая »
#150
(Правка: 9:44) 9:43, 8 мая 2020

wat
> 1.93434563445645645 — что ты себе представишь?
В радианах, конечно, не так просто, но и в градусах - 45, это просто удобный пример, я мог бы сказать "представь пи/2" - в радианах это легко и сразу.
А представь сходу 239 градусов? Не менее сложно, чем 1.93 радиана.
В оборотах представляется сразу и легко, поэтому я бы "для людей" предложил их.

По поводу фунтов/галлонов/дюймов и т. д. полностью согласен, я о том же речь и вёл.

#151
(Правка: 9:53) 9:48, 8 мая 2020

wat
> Футы неудобны, потому что количество дюймов в футах и количество футов в милях — рандомные и разные числа.
равно как и количество градусов в круге — соврешенно рандомное число, взятое с потолка. например, есть грады, где окружность составляет 400 град, которые очень удобно делить на 4, 8, 16 итп. чем это хуже градусов?

а количество радиан в круге — это длина единичной окружности. величина, определяемая исключительно геометрией, а не человеческим фактором.

> > например, чтобы получить линейную скорость из угловой, всплывают дополнительные совершенно не очевидные множители
> Вероятность, чтобы столкнуться с этой задачей — низкая, умноженная на вероятность "забыть о радианах" в этот момент.
например, эта задача встаёт при реализации TAA, построении любых скринспейс motion vector'ов, при реализации motion blur'а.

также дифференцирование синусов-косинусов постоянно всплывает при манипуляциях с уравнением рендеринга, с BDRF, c image-based lighting, при работе со сферическими гармониками, кватернионами, комплексными числами. если 3д модельки в редакторе крутить, то оно, может, и не понадобится, но чем более продвинутые техники реализуешь, тем больше вероятность с этим столкнуться. и поэтому, я считаю, гораздо проще научиться интуитивно воспринимать радианы, чем постоянно в голове взад-вперёд одно в другое конвертить.

> 1.93434563445645645 — что ты себе представишь?
я представлю, что это примерно 2, что примерно 2/3pi, то есть 2/3 от развёрнутого угла.

Mikle
> В оборотах представляется сразу и легко, поэтому я бы "для людей" предложил их.
количество "оборотов" — это и есть множитель перед 2pi. поэтому, например, 0.8 оборота — это 0.8 * 2pi.

#152
(Правка: 10:10) 9:51, 8 мая 2020

Mikle
Ну, в коде или в файле ты же не видишь "пи на два".
Про обороты наполовину согласен — в какой-то мере это удобнее, если не считать, что вся математика проходит внутри одного оборота и делать всегда дроби — усложнение на пустом месте.

Если бы были только футы (без миль и дюймов, как градусы), то они не были бы ничем хуже, чем метры.

#153
(Правка: 9:56) 9:56, 8 мая 2020

Suslik
> где окружность составляет 400 град, которые очень удобно делить на 4, 8, 16
> итп. чем это хуже градусов?
В математике 30 и 60 градусов — магия круга. Проекция равна половине радиуса. в 400 градусов ты не сделаешь эти числа недробными.

> например, эта задача встаёт при реализации
С этим сталкиваются адвансед график программисты 1 раз в жизни. А нарисовать 90 градусов — сталкивается каждый школьник.

> я представлю, что это примерно 2, что примерно 2/3pi.
:) ыыы

#154
9:56, 8 мая 2020

wat
> вся математика проходит внутри одного оборота
Можно сделать, как и с другими стандартными величинами - циклы (по-русски удобно, чтоб не путать с понятием "оборот"), миллициклы, микроциклы и т. п.

#155
10:03, 8 мая 2020

Mikle
Пи на 3 == 60 градусов, это сколько миллициклов?

#156
(Правка: 10:08) 10:06, 8 мая 2020

Suslik
> 0.8 оборота — это 0.8 * 2pi
А просто числом, это 5.02654816, не сразу даже скажешь, меньше, чем 3/2*Pi, или нет.
wat
> 60 градусов, это сколько миллициклов?
0.16(6), довольно читаемое сходу число.

#157
10:08, 8 мая 2020

в военное время число pi может достигать 4

#158
10:17, 8 мая 2020

Mikle
> > 60 градусов, это сколько миллициклов?
> 0.16(6), довольно читаемое сходу число.
А вот и неправильно!
Будет 166,66(6). Ты уже запутался :)
Удобнее, чем 60 градусов для представления? Школьников не жалко?
А сколько будет в миллициклах угол у бессектриссы угла в 30 градусов? Мне 15 — легко посчитать.

#159
(Правка: 10:45) 10:45, 8 мая 2020

А еще в компьютерном исчислении правильный "градус" должен быть по степени двойки.
Например для байтовых вычислений (8-битные или микроконтроллерные системы) такой градус должен быть от 0 до 255.
При инкрементах 256 в байтовом представлении автоматически проворачивается к 0. Четверти - 0, 64, 128, 192. Собственно номер четверти это всего лишь число в самых значащих двух битах байта.
Прикрутив фиксированную точку 8:8 (байт целого и байт дробного) легко делаем матан повышенной точности где синусы/косинусы легко изымать из предрассчитанного массива 0..255 с линейной интерполяцией по дробной части между опорными значениями.
Что прикольно, что если по русски цифровое название "цирадус", от "цифровой градус", то в английском еще забавнее: digital degree = digree. На слух фломастер тот же, что может доставить проблем. А если заглянуть в этимологию, то происходит оно в английском от латинского de-gradus, где de=вниз, а gradus=шаг, то есть "ступенька". Так что di-de-gradus можно сократить как "dideg". Но достаточно тут на сегодня алкса.

#160
10:52, 8 мая 2020

=A=L=X=
Когда подбирали градусную систему, очевидно, условием было, что число градусов полного круга должно делиться на 12.

#161
11:11, 8 мая 2020

Включусь в дискуссию.
Радианы, конечно, математически естественней, но подход "использовать везде радианы" тоже может быть фанатизмом. Раньше я тоже предпочитал использовать радианы везде во имя математической чистоты. Сталкиваюсь, что градусы - могут быть уместными уместными чаще, чем кажется.
Число 180 - точно представимо во floating point. π - нет. sin(M_PI)!=0.0. Желание, чтобы матрица поворота на 90° была без погрешностей - может быть вполне естественным. Уже это могло бы быть достаточной причиной делать glRotete() как сказано (другое дело, что реализации OpenGL, вроде, этого не делают).
Опять же, range reduction на 360 - гораздо легче, чем на 2π. Соответственно sinDeg() внутри может быть легче, чем sin().
То что функции в радианах - детали математичееской библиотеки. В мат. библиотеке вполне могут быть sinPi() и sinDeg(). Или самому обёртки написать, оно несложно (если речь об удобстве использования, а не о скорости).
IEEE-754 рекомендует реализовать sinPi() т. е. sin(π*x).

И аргументы про то, что синусы не в радианах порождают коэффициенты при дифференциировании, и для угловой скорости - они вполне законные, да.

#162
11:14, 8 мая 2020

wat
> Ты уже запутался :)
Да, я в циклах ответил.
wat
> сколько будет в миллициклах угол у бессектриссы угла в 30 градусов? Мне 15 — легко посчитать
Так ты и исходный угол задавай в циклах, будет легче.
То, что для младших школьников так легче - согласен, хотя, будь система в циклах, эти "стандартные" величины углов, наверное, называли бы натуральными дробями - 1/6, 1/8, 1/12 - тоже удобно.
=A=L=X=
> А еще в компьютерном исчислении правильный "градус" должен быть по степени двойки
В идеале - да, сама система счисления должна быть двоичной (кратной двум). И не было бы проблем сходу понять, проходит IP адрес маску, или нет.
Кстати, румбы - двоичные.

#163
11:25, 8 мая 2020

Mikle
> Так ты и исходный угол задавай в циклах, будет легче.
Ну, что особо не задумываясь школьник посчитает быстрее: половину от 30 или от 0.083(3)?

> натуральными дробями
Относительно удобно, только эти значения не хранятся в дробях в памяти компа или в файле.

#164
11:46, 8 мая 2020

wat
Я уже согласился, что для первых шагов школьника градусы могут быть удобнее. Но на практике уже этих точных удобных значений не будет.
И, если мы выбрали для хранения углов на компьютере целочисленные переменные - мы себя очень ограничили при любой системе величин.

Страницы: 110 11 12 1315 Следующая »
СайтФорумОбсуждение