Как нарисовать квадрат

Этот пост является ответом к этому комментарию.

Однако оформлен отдельным постом так как материал может оказаться полезным.
Заранее предупреждаю, я не художник, в художке никогда не был. Весь материал ниже отражает мою проф деформацию.
Повторяйте на свой страх и риск, автор не несёт никакой ответственности за ваши действия.

Итак, преступим:

Как нарисовать квадрат

Таким же образом можно рисовать любой прямоугольник с желаемым соотношением сторон, но здесь и далее будем говорить о квадрате.

Что может быть сложного в том чтобы нарисовать квадрат? Рисовать мы его будем в перспективе. Как известно, для построения перспективы используются точка схода (vanishing point). Однако точки схода помогают построить параллельные и перпендикулярные линии, но не помогают в соблюдении пропорций.
Давайте рассмотрим случай с двумя точками схода, так будет проще объяснить, а потом если нужно, я покажу, что будет в случае с одной точкой схода.

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

Как далеко располагать точки схода друг от друга? Нужно понимать, что мы рисуем точки схода, которые соответствуют двум перпендикулярным направлениям. Соответственно угол между ними - 90 градусов. Есть такая штука как field of view (FOV), это угловой размер поля зрения. Выбор этом величины очень крайне важен, так как существенно меняет восприятие рисунка.
Вот например анимация с википедии, где одновременно меняется FOV и расстояние до объекта, так чтобы размеры объекта на проекции оставались постоянными.

,Творческая лаборатория,разное,Каляки-Маляки,каляки-маляки, Каляки-Маляки, Каляки маляки,,длиннопост

FOV определяет, насколько сильными будут перспективные искажения. Обычно, если нужно изобразить объект который находиться далеко, то нужны минимальные перспективные искажения, если нужен большой объект близко, то наоборот - большие.
Соответственно, чем меньше расстояние между точками схода на нашем рисунке, тем больше перспективные искажения. Я буду рисовать две точки схода, так как нам понадобятся дополнительные построения, однако я также изображу рамку, которая будет обозначать границы нашего рисунка.

Давайте попробуем нарисовать квадрат:
Где же расположить дальнюю грань? Какая линия даст нам квадрат: красная, зеленая или синяя?

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

Но мы гадать не будем.

Для начала, нужно провести вертикальную ось рисунка, она должна быть по центру:



Затем, отметим средину, между точкой схода V1 и V2:

Начертим окружность, соединяющую V1 и V2. Отметим пересечение этой окружности с вертикальной осью. 

Это пересечение - особая точка, я ее называю точка "вниз". Она имеет такую особенность, что из нее обе точки схода видны под прямым углом. И эта точка точно соответствует направлению вниз.

Затем, нам нужно провести прямую из точки "вниз" так, чтобы она образовала угол под 45. Отметим пересечение этой прямой с линией горизонта как V3. Это третья точка схода, для линий под 45 к двум другим точкам схода.

Воспользуемся точкой схода V3, чтобы нарисовать диагональ нашего квадрата. Теперь положение дальней грани очевидно.

Как видим, мы совсем не угадали с дальней гранью в самом начале. Да, на рисунке может показаться, что что-то не то, но это самый настоящий квадрат, я гарантирую это. Для убедительности, давайте дорисуем его в куб.

,Творческая лаборатория,разное,Каляки-Маляки,каляки-маляки, Каляки-Маляки, Каляки маляки,,длиннопост

И конечно же, все эти построения можно не делать, а на глаз определить положение точки "вниз" и затем на глаз поставить V3. А дальше рисовать с помощью V3 диагонали для примитивов.

С пропорциями в перспективе достаточно просто налажать, надеюсь описанный способ поможет исправить ситуацию.
Вот например, замечательный рисунок Xand'a, который мне очень нравится, но там беда с перспективой. Технически, все точки схода, все линии, все стоит правильно, но ошибка в пропорциях.
Способ выше, я придумал сам для себя, однако вполне возможно, что подобное давно используется или есть что-то лучше.
Если нужно, могу чуть позже в камменты скину случай для одной точки схода.