#css #math #perspective
#css #математика #перспектива
Вопрос:
Допустим, у нас есть квадрат шириной 50 пикселей. И -webkit-перспектива есть 1000px*
.
Какова формула для определения того, насколько большим будет квадрат на заданном расстоянии от зрителя (ширина, которую он будет фактически отображать на экране)?
*
Это означает, что позиция наблюдателя составляет 1000 пикселей от z=0
точки.
Комментарии:
1. Вы предполагаете, что вид из источника, а квадрат обращен к нему (т. Е. Без смешных углов)?
2. Подождите, это 2D или 3D? И почему бы не начать с отрезка линии, прежде чем беспокоиться о квадрате? (В 3D квадрат рядом со зрителем не выглядит квадратным, стороны выпирают наружу.)
3. Никаких шуток. Предположим, что это прямая линия от окна просмотра до центра объекта до точки схода.
4. Итак … вы хотите знать угловую ширину квадрата шириной 50 пикселей (предупреждение: очень плохие единицы измерения) при просмотре с расстояния в x пикселей, верно?
5. ДА. Если это плохие единицы измерения, используйте все, что вы предпочитаете, и я скорректирую вопрос.
Ответ №1:
Угловая ширина квадрата шириной 50 единиц, если смотреть с расстояния в x единиц, равна 2 atan(25/x)
(в радианах).
Комментарии:
1. Есть ли какой-либо способ преобразовать угловой размер в кажущийся линейный размер (в единицах измерения)?
2. @cmal: да, умножьте его на константу. Выберите константу, которая дает вам поле зрения, которое вам нравится. Если константа слишком мала, вы получите эффект рыбьего глаза. Если он слишком большой, это будет похоже на просмотр в бинокль.
3. часть «умножить на константу» — это именно то, что я искал. Спасибо.