How to bend the rectangle on the left to the circle on the right? I've tried creating a circle and applying the "pattern along path" effect, but it only results in one color.
-
1Many of us have seen the wanted thing working in Illustrator and expect the same in Inkscape. Unfortunately the bent shape can in Inkscape be only a single or combined path, not multiple separate items nor a group. Extension Generate from path > Pattern along path can handle a group, but it bends nothing, it only moves and scales the items. And removes gradients. The workaround in Inkscape is to convert the effect back to a path, break apart the bent items and colorize them one by one as you obviously already have done. BTW Programmers may have something worth a proper answer.– user82991Commented May 27, 2022 at 9:20
-
You can't have two fill colours in one combined shape, and bend them along one path. You can only use a combined path, and a combined paths can only have one stroke/fill attribute - so this isn't possible the way you are trying to do it. Instead, you could create something like the example graphic using simple stroked arcs, duplicates, scaling, and rotation, etc. Absolutely no need to use pattern along a path. I can add an answer if you allow for other methods of construction.– Billy KerrCommented May 27, 2022 at 10:14
-
Bill, I've follower your answer using a group of two paths, and your solution (based on bend from clipboard shape) works even with two colors. Perhaps @Clydinite could investigate in this direction.– Paolo GibelliniCommented May 27, 2022 at 10:19
-
@PaoloGibellini - interesting, but it might not be very practical. Getting accurate circles may be difficult. I can think of easier ways to create such a graphic that involve absolutely no bending or pattern along a path.– Billy KerrCommented May 27, 2022 at 10:25
-
@Bill surely obtain an accurate circle is not a trivial task, my idea was just as exercise, starting for example with a more complex shape.– Paolo GibelliniCommented May 27, 2022 at 11:25
2 Answers
Seemingly no flood of answers "how to do it exactly and as a single operation". While waiting for one I write the workaround I know.
Three rectangles which wait for bending on a circle
Duplicate the rectangles (=select all, press Ctrl+D). Combine the parts of the duplicate by applying Path > Combine. It becomes single color. I removed the fill and inserted a black stroke to show it's a combined path. Copy the result to the clipboard to make it available in phase 4.
A circle
Insert to the circle path effect Pattern along path and set the pattern to be taken from the clipboard. Select effect mode single stretched. You must adjust manually the width of the bent shape.
Apply Path > Object to path and Path > Break apart to make the parts free. Set the right strokes (=none in this case) and pick with the eyedropper fill colors from the original (=1).
Current Inkscape seemingly converts circles, rectangles etc. preset shapes automatically to paths (=Bezier curves) when one attempts path operations. Path > Combine seemingly allows the pattern even to be a group.
There are still cases when the automatic conversion doesn't happen. An example: Extension > Generate from path > Interpolate. In such cases one must apply Path > Object to path to make the wanted thing possible.
Personally, I wouldn't use pattern along a path to construct this in Inkscape. You can make something like this with stroked circles, and arcs of circles, and different coloured strokes. The nice thing about doing it this way would be that it's fully adjustable.
An example