Как продлить два прямых края до точного угла, не изменив размеры фигуры
Чтобы два прямых края точно сошлись, продлите каждый вдоль его существующего направления до их общей точки пересечения. Перемещайте только концы рядом с разрывом, оставляя остальной контур неподвижным. Так сохраняются заданные размеры, если точка пересечения находится в пределах существующих ширины и высоты фигуры.
Для контура персонажа или виртуальной игрушки это локальное изменение геометрии во внешнем графическом редакторе. В инструкции ниже объясняется, как определить нужный угол, выполнить изменение в QCAD или Inkscape и проверить результат. Важно учитывать одно условие: продление края неизбежно меняет длину его отрезка. Сохранить общие размеры значит оставить заданными ширину, высоту и опорные точки, а не сохранить длину каждого незавершенного отрезка.
Что должно оставаться неизменным, чтобы сохранить размеры фигуры?
Перед редактированием различайте три вида измерений: общую ширину и высоту, положение и направления существующих сторон, а также длину отдельных отрезков. Замыкание незавершенного угла может сохранить первые два параметра, изменив третий.
Представьте две незавершенные стороны прямоугольного туловища персонажа. Верхний край уже задает верхнюю границу, а правый — правую. Продление этих краев до пересечения добавляет недостающий угол, не сдвигая ни одну из границ. Однако если две наклонные стороны сходятся выше текущей верхней точки, замыкание угла увеличит высоту контура. Нельзя одновременно продлить стороны до этой точки пересечения и сохранить меньшую высоту.
Запишите заданные ширину и высоту, два конца вдали от разрыва и любую опорную точку, используемую для позиционирования персонажа. Сохраните копию исходного контура для сравнения. Эти ориентиры помогут отличить правильное исправление угла от случайного изменения масштаба.
Как определить точный угол?
Рассматривайте каждый прямой отрезок как часть бесконечно длинной прямой. Для двух непараллельных прямых в одной плоскости чертежа их пересечение задает угол. Середина между незавершенными концами обычно не лежит ни на одной из прямых, поэтому перемещение обоих концов туда может изменить направления обоих краев.
Для горизонтальных и вертикальных краев расчет особенно прост: возьмите координату x у вертикального края, а координату y — у горизонтального. Их сочетание дает точку пересечения. Для наклонных краев используйте команду редактирования, которая учитывает пересечение, либо вычислите точку пересечения до изменения концов.
В следующем примере используются условные единицы чертежа. Он показывает незавершенное прямоугольное туловище персонажа, у которого остальные края уже задают общие ширину 80 единиц и высоту 60 единиц.
| Элемент | До изменения | После изменения |
|---|---|---|
| Верхний край | (0, 60) — (72, 60) | (0, 60) — (80, 60) |
| Правый край | (80, 0) — (80, 52) | (80, 0) — (80, 60) |
| Общий угол | Отсутствует | (80, 60) |
| Общая геометрическая ширина × высота | 80 × 60 | 80 × 60 |
Верхний край лежит на прямой y = 60, а правый — на прямой x = 80. Следовательно, их точка пересечения — (80, 60). Каждый незавершенный отрезок увеличивается на 8 единиц, а общая ширина и высота контура остаются прежними. Эта проверка координат полезна, даже если изменение выполняет автоматический инструмент: она позволяет сравнить результат с точкой, определенной независимо.
Как автоматически продлить оба края в QCAD?
Для контура, состоящего из двух отдельных линейных объектов, в QCAD есть команда Trim Both. Несмотря на название, команда может как укоротить две линии, так и продлить их до общей точки пересечения. В актуальном руководстве она находится в меню Modify → Trim and Divide → Trim Both; последовательность клавиш быстрого вызова — T, M, а среди имен команд указаны trim2 и extend2. Руководство QCAD: Trim Both
- Откройте редактируемый контур и найдите два прямых линейных объекта рядом с отсутствующим углом.
- Убедитесь, что это нужные края, а проецируемая точка пересечения соответствует требуемому контуру.
- Запустите Trim Both.
- Щелкните сначала по одному краю, затем по другому.
- Дважды нажмите Escape, чтобы завершить команду.
- Сравните полученный угол с ожидаемыми координатами и сохраненными размерами.
Согласно документации, команда доводит оба выбранных объекта до их общей точки пересечения. В приведенном выше примере концы рядом с разрывом должны оказаться в точке (80, 60). В руководстве QCAD по редактированию также объясняется, как при обрезке выбирать сохраняемые части; если линии уже пересекаются, внимательно щелкните по тем их частям, которые нужно оставить. Руководство QCAD: Trim Both, Учебник QCAD: 1.9 Изменение объектов
Не заменяйте эту команду произвольным увеличением длины, если заранее не рассчитали расстояние. В документации QCAD увеличение на заданную величину описано как отдельная операция. Для этой задачи команда, основанная на точке пересечения, прямо задает нужное положение конца. Учебник QCAD: 1.9 Изменение объектов
Как точно расположить угол в Inkscape?
Если контур персонажа уже представлен редактируемым контуром в Inkscape, работайте с его узлами. Инструмент «Узлы» позволяет выбрать и переместить отдельные узлы; перетаскивание самого сегмента может изменить его кривизну, поэтому выбирайте нужный конец напрямую. Редактирование контуров инструментом «Узлы»
Для приведенного примера активируйте инструмент «Узлы» клавишей N, выберите только конец верхнего края в точке (72, 60) и задайте ему координаты X = 80 и Y = 60. Затем выберите только конец правого края в точке (80, 52) и задайте ему те же координаты. В инструменте «Узлы» есть поля для числовых координат x и y, а также список выбора единиц измерения. Везде используйте одни и те же единицы. Параметры инструмента «Узлы»
Такие изменения координат сохраняют направления краев в этом примере: конец верхнего края перемещается горизонтально вдоль y = 60, а конец правого — вертикально вдоль x = 80. Для наклонных краев укажите вычисленную точку пересечения. Оставьте противоположные концы неподвижными и убедитесь, что каждый измененный сегмент по-прежнему лежит на исходной прямой.
Если оба конца принадлежат одному незамкнутому контуру и должны образовать связанный угол, выберите совпадающие концевые узлы и примените команду Join (merge) nodes. В Inkscape эта команда описана отдельно от Join end nodes with a new segment, которая создает соединительный сегмент. Сначала задайте точное положение угла. Параметры инструмента «Узлы»
Почему простое соединение незавершенных концов может исказить фигуру?
Соединение концов решает задачу связности: как должны соединяться эти части контура? Продление краев решает геометрическую задачу: где пересекаются прямые, вдоль которых они идут? Сначала решите геометрическую задачу.
В приведенном примере прямой отрезок от (72, 60) до (80, 52) создаст диагональ через отсутствующий угол. Границы фигуры по-прежнему составят 80 на 60 единиц, но вместо нужного угла в точке (80, 60) получится скошенный. Поэтому совпадение размеров само по себе не доказывает, что контур верен.
Также совпадение координат двух концов не доказывает, что контур замкнут. В руководстве Inkscape открытые контуры, имеющие концевые узлы, отличаются от замкнутых, у которых концы соединены. Если нужен единый непрерывный силуэт персонажа, проверьте связность контура. Редактирование контуров инструментом «Узлы»
Что проверить, если результат выглядит неправильно?
Прежде чем перемещать другие точки, проверьте следующее. Так вы сможете отличить неподходящую точку пересечения от ошибки при выборе объектов или незавершенного соединения.
| Признак | Что проверить | Что делать дальше |
|---|---|---|
| Угол находится далеко от персонажа | Почти ли параллельны края? | Прежде чем продлевать их, проверьте, та ли это пара краев. |
| Однозначного угла нет | Параллельны ли прямые или лежат ли они на одной бесконечной прямой? | Пересмотрите предполагаемый контур: одним только продлением нельзя определить единственную точку пересечения. |
| Персонаж стал шире или выше | Находится ли точка пересечения за исходными границами? | Определите, что задает фигуру: точка пересечения или исходные размеры. |
| Край изменил направление | Сдвинулся ли его противоположный конец или целевая точка не лежит на исходной прямой? | Восстановите положение опорной точки и используйте правильную точку пересечения. |
| Через разрыв появилась диагональ | Не были ли незавершенные концы соединены напрямую? | Отмените соединение и сначала продлите оба края до точки пересечения. |
| Угол кажется соединенным, но контур остается открытым | Не находятся ли в одной точке отдельные концевые узлы? | Проверьте связность и соедините нужные концевые узлы. |
Для почти параллельных прямых небольшое различие в направлении может отодвинуть точку пересечения на большое расстояние. Если результат кажется неожиданным, проверьте исходные направления краев, прежде чем принимать изменение. Точные параллельные прямые не пересекаются, а для совпадающих прямых нельзя однозначно определить единственный угол.
Как проверить готовый контур персонажа?
Сначала проверьте геометрию по координатам, затем осмотрите силуэт. В приведенном примере оба измененных конца должны находиться в точке (80, 60), противоположные концы должны остаться в точках (0, 60) и (80, 0), а полный контур должен по-прежнему занимать 80 на 60 единиц чертежа.
Сравните измененный контур с сохраненной копией. Вдали от исправленного угла существующие края должны оставаться на прежних местах. В самом углу проверьте, не остались ли разрыв, лишняя диагональ, выступ за точку пересечения или непреднамеренная кривая. Если вам нужен единый непрерывный контур, отдельно проверьте его связность.
Точное исправление угла дает однозначный результат: края достигают точки их фактического пересечения, их исходные направления и удаленные концы остаются прежними, а выбранные для сохранения размеры не меняются. Установите эти условия до редактирования, и итоговая проверка будет простой.
