Я бы предположил, что он рассчитан стандартным способом для графики, которая принимает изображение заданного размера в неограниченном «мире» (мировые координаты), преобразует его в нормализованное устройство (думает единичный квадрат), а затем преобразует его снова к координатам экрана. Преобразования состоят из перевода и масштабирования точек.
Учитывая окно заставки в мире (так, как это должно появиться без перевода или масштабирования), нормированные (, у й) значений получаются следующим образом:
Первая часть - это перевод, а вторая - масштабный. Это уменьшает изображение, которое должно содержаться в квадрате 1 x 1, поэтому все значения (x, y) являются дробными.
Чтобы перейти от нормированной на экране системы координат значения вычисляются следующим образом:
Эти операции обычно осуществляются эффективно с помощью перевода и масштабирования матрицы умножений. Вращение также может применяться.
Это на самом деле низкоуровневое представление о том, как вы могли бы делать образы, фигуры и т. Д., Нарисованные так или иначе, как угодно, и последовательно представлять их на экранах любого размера. Я точно не знаю, как это делается в примере, который вы даете, но, скорее всего, это будет какая-то вариация. См. Начало this presentation для визуального представления.
Меня особенно интересуют окна и оракула. Конечно, это масштабирование. так как я также показываю одно и то же изображение на предзагрузчике приложения, которое появляется после заставки, и размер сильно отличается. – pranahata
Знаете ли вы, как определить, какие файлы openjdk используются как в oracle jre, а какие из них превышены с помощью кода прокрутки oracle? – pranahata