|
|
|||||
Замена Number uint.
Я тут подумал, и снова подумал, и пришёл к мысли, что вычисления с плавающей запятой довольно абстрактны и неточны. Но что, если попробовать вырваться из этого "волнистого" "приблизительно равно"?
Итак, в чём суть. Определить на уровне пакета ассоц. массив юинтов, которые будут хранить значения от 0 до единицы пропорционально uint от 0 до uint.MAX_VALUE(типа обычной дроби вместо десятичной), и вместо переменных, доставать значения по ключу в юинтах. И при вычислениях делить на uint.MAX_VALUE для получения значения с плавающей запятой(например, для скейла), хотя, думаю, лучше вместо скейла дёргать ширину, для получения найточнейшего результата. В итоге мы получаем обычную дробь, и операции можем производить исключительно с числителем. Но разве это нам мешает вычислять, к примеру, положение объекта внутри другого объекта, и делать относительные итерации числителя(например, перемещение на 10 процентов - при этом замечательную особенность обнаружил, когда попытался сделать следующее: Выходит, за границы объекта мы выйти не сможем никак! Я почти уверен, что сейчас придёт nubideus и разочарует меня. А теперь вопрос - почему не использовать инты и не проводить все вычисления с подобными дробями? Единственное, что я заметил - Если это так, то это превратит весь код в набор трай-кетчей, дабы предотвратить выброс ошибок...
__________________
There is no thing in this world that is not simple. Последний раз редактировалось ZackMercury; 25.01.2015 в 19:35. |
|
|||||
Цитата:
Но мне не нравится варнинг, который мне бросил FD: C:\Users\SuriTheAngel\Documents\DragonWorld\src\com\dragonworld\Main.as(95): col: 8 Warning: Negative value used where a uint (non-negative) value is expected. UPD: Ага... разобрался. Варнинг не бросается, если делать вот так Отлично, в таком случае дайте мне повод, чтобы не использовать подобную систему. Добавлено через 43 минуты Конечно, это первое, что пришло в голову, однако если у вас есть свои варианты, предлагайте
__________________
There is no thing in this world that is not simple. Последний раз редактировалось ZackMercury; 25.01.2015 в 19:43. |
|
|||||
Tails, замечательно выходит.
Я не раз слышал о погрешностях чисел с плавающей запятой. И все советовали использовать int для вычислений, где нужна точность. Но я вот не могу придумать, как сделать универсальное решение...
__________________
There is no thing in this world that is not simple. |
|
|||||||
Регистрация: Jan 2013
Сообщений: 322
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
SuriTheAngel, а зачем тебе? |
|
|||||
Цитата:
Ну, а вдруг мне придёт в голову моделировать физику(не механику движения, а именно физику), ну там к примеру, мне уже пришло в голову моделировать молекулярные структуры для развлечения. Хочу закрепить школьный материал таким образом) Поэтому неточность и погрешность мне не даёт покоя.
__________________
There is no thing in this world that is not simple. |
|
|||||
Вы решаете надуманную несуществующую проблему?
__________________
местонахождение |
|
|||||
Да что-то с программированием в последнее время ваще нет проблем, вот и решил решить себе надуманную
А ещё точнее, я хотел услышать, что думают другие по этому поводу. Вдруг, до меня придумали какое-то решение. Ну окей, раз все пользуются Number и всем норм - то выходит, что задача действительно надуманная. Спасибо всем за ответы.
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
Цитата:
SuriTheAngel, ну допустим будут у тебя более точные числа. есть другая проблема - время. в копутерах можно скалькулировать только одно конкретное состояние одновременно, т.е. фрагментами. а в реальности все идет с бесконечной плавностью. делай нейросети |
Часовой пояс GMT +4, время: 21:19. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|