Как разместить один объект одновременно и перед, и позади другого?

37

Я попытался (в качестве теста) сделать круг с перемычкой. Планка должна проходить под одной стороной круга, а над другой.

Я сделал это, разделив круг на два объекта, однако есть видимые швы, где было выполнено разделение, даже если пути точно совпадают.

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

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

Есть лучший способ сделать это?


При необходимости я также могу загрузить svg .

gandalf3
источник
2
Вы пытались разделить планку? Кроме того, убедитесь, что вы не используете дробное масштабирование, поскольку они иногда влияют на рендеринг линий и стыков линий.
Джонни Кутновски
Какое программное обеспечение вы используете? Иллюстратор?
Хенрик Экблом
1
Смешанное наложение объекта в Inkscape недопустимо, но вы можете действовать несколькими способами. Наиболее быстрым, вероятно, является разрез круга, на котором находится планка (разрез прямой). Кроме того, вы можете более точно перемещать точки соединения (швы не должны быть видны: возможно, проблема была в том, как вы обрезали круг).
Паоло Гибеллини
2
PS Выравнивание краев кажется проблемой Inkscape (см. Здесь , здесь и здесь ). А также смотрите Inkscape FAQ о сглаживании : привязывайте ваши горизонтальные / вертикальные края к пиксельной сетке и используйте обводки шириной в целое число пикселей. Экспортируйте растровое изображение с разрешением 90 точек на дюйм, чтобы единица пикселя соответствовала 1 пикселю растрового изображения
Паоло Гибеллини,
@JohnnyKutnowski Это меняется с увеличением, иногда разделение почти исчезает. Однако это очень хорошо видно при увеличении 1: 1.
gandalf3

Ответы:

42

Разрыв, который вы видите, связан с несовершенным рендерингом Inkscape и не обязательно является проблемой в зависимости от того, как вы экспортируете или используете SVG (если вы точно обрезаете). Тем не менее, тени могут вызвать проблемы при разрезании (это единственный способ, которым я могу придумать, чтобы сделать их правильными).

Вот мое решение этого. В качестве примера я порезал простой брусок, потому что так проще. Но у сокращения внешних кругов есть некоторое преимущество, о котором я упомяну позже. Сначала изображение:

Некоторые методы наложения

Слева используются прозрачные объекты (один синий, один красный) для демонстрации, справа показан результат.

  • В верхней части я воспроизвел то, что ты сделал, и просто порезал свой бар. Это приводит к вышеупомянутому разрыву в некоторых уровнях масштабирования или экспорте пикселей (это также может происходить в некоторых средствах рендеринга PDF или аналогичных).
  • В середине я пересекаю две половины полосы, что позволяет избежать зазора, но позволяет полосе выглядеть немного толще вокруг разреза (возможно, вам придется увеличить изображение, чтобы увидеть это).
  • Внизу я использовал то, что рекомендую делать¹. Самое большое перекрытие - половина ширины бара. Я не смог найти какой-либо уровень масштабирования или экспорт, для которого это приводило к нежелательному эффекту сглаживания (например, разрыв или утолщенная полоса).

Теперь давайте посмотрим на тени:

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

Порядок такой же, как указано выше. Справа у нас есть только тени для лучшей иллюстрации.

  • Тень для простого разреза выглядит хорошо, но мы можем видеть, что она немного слабее в позиции резки. Это становится большей проблемой для размытых теней.
  • В середине у нас значительная проблема.
  • Внизу мы можем разобрать положение среза, но тень не является ни слабее, ни сильнее, просто распределяется по-разному. В частности, хуже не становится, если тень становится размытой. Разрез еще менее заметен, если он не происходит на прямолинейном отрезке, поэтому для вас может быть выгоднее разрезать круги вместо средней полосы.

¹ Вы можете достичь этого следующим образом:

  1. Сделайте разрез как обычно.
  2. Добавьте узел в середине каждого среза.
  3. Переместите каждый узел наружу на одну четверть ширины² того, что вы отрежете.

² Для этого значения я эмпирически обнаружил, что искажение тени самое низкое.

Wrzlprmft
источник