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

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

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

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

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

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


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

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

Ответы (1)

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

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

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

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

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

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

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

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

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

¹ Этого можно добиться следующим образом:

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

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