Автор Тема: Надо же! (максимальное значение координаты в GDI)  (Прочитано 4916 раз)

Wlad

  • Jr. Member
  • **
  • Сообщений: 91
    • Просмотр профиля
Как вы думаете - какое?
max( Int32 ) ?
Я тоже так думал... Нет.
max( Int32 div 2 ) ?
И про это помышлялось... И - на этот раз - не то.

Оказывается, есть-ТАКИ НЕКОЕ МАГИЧЕСКОЕ ЧИСЛО!

0x3FFFFFF

Кто-то что-то знает по этому поводу? Читали ли где-то? В "этих ваших интернетах" находили, почему и отчего?

Предыстория
-----------------
Рисовался некий график некоей последовательности измерений некоего параметра.
Оператор (в смысле - хомо сапиенс) начал "увеличивать" график в "интересном" участке измерений...
В какой-то момент линия графика перестала перерисовываться. Не переполнение, ни что-то кракозябренное, НЕТ! Просто - соседние линии, уходящие "глубоко под низ" экрана, были видны, а линия, которая (по своей "виртуальной" длине) выходила за какое-то верхнее значение, НЕ перерисовывалась GDI...
Причём, там было "нормальное" значение y(игрек) координаты ( 0 <= y <= (max( Int32 ) - 1) ).
Собснагря, значение $3FFFFFF было "найдено" чисто делением пополам в "набросанном" примерчике на дельфе с двумя TEdit-контролами и TPicture.
Такое впечатление, что GDI оперирует неким универсальным "мировым пространством", в котором это значение - верхняя граница координаты мира.

Остался Сильно Уивлённым.
Сколько работал с виндовой графикой - первый раз на такое нарвался! :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Надо же! (максимальное значение координаты в GDI)
« Ответ #1 : Февраль 07, 2014, 02:28:34 pm »
В зачем вам такие большие координаты? Сколько графиков не рисовал, всегда координаты про которые знает операционаа были не выше разрешения экрана.
Y = λf.(λx.f (x x)) (λx.f (x x))

Wlad

  • Jr. Member
  • **
  • Сообщений: 91
    • Просмотр профиля
Re: Надо же! (максимальное значение координаты в GDI)
« Ответ #2 : Февраль 07, 2014, 02:39:00 pm »
В зачем вам такие большие координаты?
Включаем запись параметров на борту. Вначале значение некоего параметра "пляшет" где-то рядом с нулём.
Включаем нужную подсистему. Начинают литься и записываться данные. Теперь значение того-же параметра "скакнуло далеко вверх" и начало "плясать" возле другого значения.
Это - на земле.
В полёте выяснилась неприятность: у первых pc-104-х отвратнейшая надёжность соединений в мезонине при вибрациях, ударах и тряске! Поэтому во время всего полёта значения образуют "пилу" по всему диапазону значений параметра. Не смотря на это, нужно как-то "высмотреть" диапазон "пляски" у граничных значений. Поэтому "растягиваем" график по Y. В это время так же происходит пересчёт значений в координаты точек участков "пилы", соседних с нашим. Эти точки "улетят" "глубоко вниз". Оттуда и - такие большие значения.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Надо же! (максимальное значение координаты в GDI)
« Ответ #3 : Февраль 07, 2014, 02:41:59 pm »
Сори за глупый вопрос, но фильтровать сигнал не пробовали?
Y = λf.(λx.f (x x)) (λx.f (x x))

Wlad

  • Jr. Member
  • **
  • Сообщений: 91
    • Просмотр профиля
Re: Надо же! (максимальное значение координаты в GDI)
« Ответ #4 : Февраль 07, 2014, 02:44:33 pm »
Сори за глупый вопрос, но фильтровать сигнал не пробовали?
:o :o :o :o :o
 :-\
 8)
ЗАЧЕМ???????????????????????????????????????????????????????????????
Мне не надо было очки втереть кому-то, мне надо, что б система РАБОТАЛА!!! :)

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Надо же! (максимальное значение координаты в GDI)
« Ответ #5 : Февраль 07, 2014, 03:47:22 pm »
А если не 0x3FFFFFF, а (max Int32) div 2, тогда было бы легче?
Могло ведь опять не хватить.

Wlad

  • Jr. Member
  • **
  • Сообщений: 91
    • Просмотр профиля
Re: Надо же! (максимальное значение координаты в GDI)
« Ответ #6 : Февраль 08, 2014, 07:09:16 am »
А если не 0x3FFFFFF, а (max Int32) div 2, тогда было бы легче? Могло ведь опять не хватить.
Не могло.
Потому,что есть как бы "всеобщепринятые" "ХОРОШИЕ" константы. :)
Ну, там значения степеней двойки (минус 1) (сюда же - кратные размеру байта (минус 1) )
В данном случае, алгоритмы как раз под такое и писались. (там все случаи превышения и возможные "вылеты" за диапазоны значений аккуратненько обрабатывались!)
А есть - что-то "не такое".
Я конечно могу предположить, что в, мною наденном, значениии поучаствовала логика работы с принтерами,но - всё же...
Короче, чистейшая субъективность...