Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   alert( (5-5)/(5-5) ) КАК посчитать такое выражение одной строкой? (https://javascript.ru/forum/misc/24010-alert-5-5-5-5-kak-poschitat-takoe-vyrazhenie-odnojj-strokojj.html)

Livanderiaamarum 15.12.2011 01:04

Цитата:

Сообщение от trikadin (Сообщение 142976)
Можно.

А ещё можно не одной строкой. Вас за это никто не побьёт.

а разве одним выражением не быстрее?

блин да, вы правы, я черт возьми прямо осветление какое-то почувствовал.. освобождение.! у меня был адский заеб не создавать переменных, делать максимально короткие пути поиска интерпритатором ременных в прототипах. это сильно ухучшало скорость разработки. щас я действительно понял что НУЖНО ВНАЧАЛЕ СДЕЛАТЬ ЧТОБЫ РАБОТАЛО, а потом уже оптимизировать.
да и к тому же такая дикая оптимизация иногда совсем не к месту и не нужна. но это происходило прямо таки автоматически у меня) щас я реально задумался над этим. и решил не сокращать код а писать максимально развернуто и понятно. спасибо вам большое)

trikadin 15.12.2011 01:12

Цитата:

Сообщение от Livanderiaamarum
а разве одним выражением не быстрее?

А это как составить)

dmitriymar 15.12.2011 01:18

Цитата:

Сообщение от Livanderiaamarum
x = (y-y1)/(y2-y1)*(x2-x1) + x1

кстати эта формула будет работать 50 на 50.учитывая что операции с числами типа float иногда /часто дают результат не точный а приближенный.
пример эфемерный но степень приближения примерно такая:
0.35+0.65=0.99

Livanderiaamarum 15.12.2011 01:19

Цитата:

Сообщение от with-love-from-siberia (Сообщение 142978)
неправда ваша.

Это логично. 0 / 0 - это неопределенность, которая не может быть представлена конечным или бесконечным числом, поэтому в языке обозначается - NAN. Просто отлавливайте такие ситуации.

200 / 0 тоже неопределенность либо бесконечность либо само делимое число. почему тут получается бесконечность в таком случае если это не особенности интеерптитатора?

Livanderiaamarum 15.12.2011 01:21

Цитата:

Сообщение от dmitriymar (Сообщение 142985)
кстати эта формула будет работать 50 на 50.учитывая что операции с числами типа float иногда /часто дают результат не точный а приближенный.
пример эфемерный но степень приближения примерно такая:
0.35+0.65=0.99

это как-то реализованно в видеокартах же аппаратно? не знаете как)? оч интересно.

а все, придумал))! тут мне не нужно ТОЧНО знать в каком месте розовая линия пересекает мой голубой луч! мне нужно знать пересекает ли она его ДАЛЬШЕ определеннго места, или пересекает ближе этого места))



это все для определения принадлежности точки многоугольнику. делаю трассировку луча, щас пишу функцию которая будет определять тип найденных лучем граней, типа прилежащие, пересекающие и нейтральные. ))

ну вот. это типа пересекающий. тока небычный) просто в таком случае буду смотреть СНАЧАЛА на одной ли высоте пущен мой луч и на одной ли с ним высоте пущена проверяемая линия. и при том ПАРАЛЛЕЛЬНЫ ЛИ ОНИ.. вот и все))

нужно вначале определять тип а потом уже работать с каждым типом граней по разному)
но все ровно всем спасибо ОГРОМНОЕ!

trikadin 15.12.2011 01:25

Цитата:

Сообщение от dmitriymar
кстати эта формула будет работать 50 на 50.учитывая что операции с числами типа float иногда /часто дают результат не точный а приближенный.
пример эфемерный но степень приближения примерно такая:
0.35+0.65=0.99

Пример:

alert(0.2+0.1)

Livanderiaamarum 15.12.2011 01:30

Цитата:

Сообщение от trikadin (Сообщение 142989)
Пример:

alert(0.2+0.1)

почему не сделать систему автоматически выбирающую систему счисления?

with-love-from-siberia 15.12.2011 01:35

Livanderiaamarum,
200 / 0 - это "элементарная" бесконечность. Отвлекитесь от своей задачи и посмотрите с другой стороны. Вот Ваше выражение, по которому Вы считаете абсциссу точки:
x = (y-y1)/(y2-y1)*(x2-x1) + x1


А теперь преобразуйте ее к виду:
Код:

(x-x1)/(x2-x1) = (y-y1)/(y2-y1)
Подставьте реальные значения:
Код:

(x-1)/(5-1) = (5-5)/(5-5)
Вы же не хотите сказать, что любое число будет равно... Чему - нулю, бесконечности?

Livanderiaamarum 15.12.2011 01:37

Я тут подума, если я хочу определить принадлежность точки полигону то нужно вот что сделать. во первых я не могу симулировать идеальное пространство. для такого копьютера не хватит всех атомов во вселенной. я не могу записать формулой.. я не могу использовать фракталы из-за погрешности. но тут вот дело в чем. где может использоваться принадлежность точки полигону? Правильно! ТОЛЬКО в восприятии человека! например к играх или интерфейсах или в физических движках (которые тоже имеют в настройках точность просчета)

дело в том что нужно будет упрощать многоугольник. оптимизировать его и с оптимизированным уже проводить вычисления. при чем оптимизировать так чтобы несовершенство плавоющей точки не влияло на просчет.


или например пускать 10 лучей, и смотреть сколько граней они пересекут.. и сравнивать и.т.п. то есть я тут не правильный подход вначале использовал...

то есть нужно не ЭМУЛИРОВАТЬ результат, а СИМУЛИРОВАТЬ

melky 15.12.2011 01:39

Цитата:

Сообщение от Livanderiaamarum (Сообщение 142995)
Я тут подума...

http://ru.wikipedia.org/wiki/Зад...ольнику

на тебе вот кисточки, сиди и рисуй.


Часовой пояс GMT +3, время: 15:37.