Показать сообщение отдельно
Старый 03.03.2013, 10:33
yasha005 вне форума Посмотреть профиль Отправить личное сообщение для yasha005 Найти все сообщения от yasha005
  № 16  
Ответить с цитированием
yasha005

Регистрация: Dec 2012
Сообщений: 100
Цитата:
Сообщение от Wolsh Посмотреть сообщение
А преобразовать формулу в обратную — не проще? Что-то типа bitmapPict[i].rotationY = i * count / 90;

Использовать один раз деление, чтобы узнать угол между листами, и затем одно умножение для каждого листа в цикле вместо монструозной тригонометрической формулы, считающей обратно собственные входные параметры только для того, чтобы раз в 10 замедлить выполнение кода и слегка подогреть процессор — это дело вкуса? Греческий эпос может нравиться Вам больше, чем японские хайку, но в программировании это — вопрос эффективности. И читабельности кода, разумеется.
Позволю себе не согласиться с вами. Такое решение i * count / 90 не подходит по той причине, что картинок может быть больше 10, а значит угол разворота "книги" будет больше чем 90 градусов. За идею спасибо, но я всё-таки остановлюсь на своём решении.

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