Arhn - архитектура программирования

Расчет безопасной рамы

Как рассчитывается безопасный фрейм в 3ds Max. Я хочу знать взаимосвязь между шириной и высотой области просмотра, шириной и высотой рендеринга (соотношением сторон) при расчете безопасной ширины и высоты фрейма.

Моя конечная цель - найти расстояние между верхним левым углом плоскости и верхним левым углом безопасной рамки.

то, что мне нужно, это

  • Длина рамы сейфа (красная горизонтальная стрелка)
  • Высота рамы сейфа (красная вертикальная стрелка)
  • расстояние между окном просмотра и безопасной рамкой (фиолетовая горизонтальная стрелка)

введите описание изображения здесь

08.06.2015

Ответы:


1

Следующая функция MAXScript демонстрирует, как вычислить box2 безопасных размеров кадра, учитывая point2 размера окна просмотра и размера визуализации.

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

fn getViewportSafeFrameSize viewSize renderSize =
(
    local viewAspect = viewSize.x as float / viewSize.y
    local renderAspect = renderSize.x as float / renderSize.y

    local x, y, w, h
    if (viewAspect > renderAspect) then
    (       
        h = viewSize.y
        w = (h * renderAspect) as integer
        y = 0
        x = (viewSize.x - w) / 2
    )
    else
    (
        w = viewSize.x
        h = (w / renderAspect) as integer
        x = 0
        y = (viewSize.y - h) / 2        
    )
    return box2 x y w h
)

--usage
getViewportSafeFrameSize [gw.getWinSizeX(), gw.getWinSizeY()] [renderWidth, renderHeight]
08.06.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..