8

Basically, I want to draw this:

               

to represent some pressure distribution over a surface. I have tried this video tutorial and this page, but this is what I get:

               

and here are my "Pattern Along Path" settings:

               

I would appreciate it if you could help me know what is the problem and how I can resolve it.

4 Answers 4

13

Do not use preset arrows. You have no control on them when it's needed - like just now. Preset arrows are internally tricky structures, an own arrow is simpler.

enter image description here

Here's my arrow and a black test curve. The arrow has exactly vertical line and a tilted line and its flipped duplicate. The parts snap if you have all point snaps ON, but bounding box and grid snaps are turned OFF.

Select the arrow and apply Path > Combine to get a single path item. Group will not work. Copy the combined path to the clipboard.

Duplicate (=Ctrl+D) the test path and insert to the duplicate path effect Pattern along path, paste the pattern from the clipboad. The result:

enter image description here

Duplicate is a must to keep the original visible and to make possible to have for it different line type, -color and -width. Arrows inherit their line width and -color from the curve which got the effect.

Adjust the spacing and normal offset:

enter image description here

You may want to present a non uniform pressure distribution. You can prepare a row of different length arrows to be used as the pattern along path, but only as Single, stretched, no repeat. Another possibility is to do like I did above, but have long enough arrows. They can be shortened by inserting a clipping path (=Object > Clip > Set). An example:

enter image description here

The closed red path was drawn on the top and used as clipping path for the effected curve.

The need to insert normal offset can be considered as harmful. One way to get rid of it is to insert a dummy line as counterweight below the arrow. It can be deleted afterwards. If one applies Path > Object to Path and Path > Break Apart to a effected path the elements become separately editable paths.

There's a reason to avoid converting the path effect result to a path. After conversion you cannot any more adjust the effect. Editability is a big plus if you have to experiment or generate variations.

ADD: Instead of path effect "Pattern along path" one can use extension Generate from Path > Scatter. With it the shape can be a group which contains differently colored elements. There's also extension "Pattern along Path" . It works in a mostly useless way, but Scatter does the job.

The Edit > Clone > Create clone -trick to get a set of arrows which can be edited easily afterwards by editing the father only works as well with the Scatter extension as in the marked method told by user Adam Bells.

8

First you need to make sure the line with the arrow is a single closed path. After you have drawn a line, added the arrow pointer, click Path > Stroke to path. Using the Select by Nodes tool N, select all the pieces which make up the arrow, and do Path > Union. You may have to do this a couple of times to make sure you get all the pieces to unite. Set this shape to have a black fill, and no stroke. Once you have done this, copy the arrow.

You want to end up with something like this.

enter image description here

Draw a curved line. Set the stroke width to zero <-- Note this step is really important, otherwise you will scale the pattern. Now remove the stroke, and set the fill to black. Looks a bit weird at this stage.

enter image description here

Duplicate this Ctrl+D

Set the fill to none, and stroke to red.

enter image description here

Select the black filled curve by clicking on it with the Select tool S

Add the Pattern Along a path effect. Hit the Linked to Path in Clipboard button in the Pattern along a path dialog, and set Pattern Copies: Repeated

Should look like this

enter image description here

Finally Adjust the spacing as required, the Normal Offset to bring the arrows above the line, and use the Tangential Offset to adjust the horizontal position. You can also control the width of the pattern using the control point (shown circled red below)

enter image description here

3

Another way is to use the Ruler Live Path Effect as follows:

  • Select the Bezier curve, and select Path > Path Effects.

  • Add Ruler path effect and change the parameters, e.g:

    • Mark distance: 35
    • Major length: 120
    • Minor length: 120
    • Mark direction: Right
    • Border marks: None
  • Convert the result to a path: Path > Object to Path

  • Break Apart: Path > Break Apart

  • Unselect all then select the Bezier curve only.

  • Invert the selection: Edit > Invert Selection

  • Open the Fill & Stroke dialog: Object > Fill and Stroke

  • From the Stroke style tab, specify an arrow marker. (if you are using end markers combobox, and you see the arrows directions are inversed, then you can either use Start markers combobox or select: Path > reverse)

  • On the toolbar, make sure the option that scales stroke is disabled: disable this option

  • Open the transform dialog: Object > Transform and click on the scale tab

  • On the scale tab check the options: "Scale proportionally" and "Apply to each object separately"

  • Specify the scale to 80% and click Apply button (click many times until you see the arrow heads aligned with the curve as expected).

Result:

result of the steps above

See the animation below:

1
  • Inkscape has got so many separately developed functions that a person who tries them and doesn't get stucked with a limited set finds also new applications to them.
    – user82991
    May 1, 2022 at 13:18
2

You can use Inkscape's custom markers. Draw a vertical arrow. It can have more parts and colors, if needed. Here's a couple of extras, maybe unnecessary extras for physics presentations. They are there to show it works:

enter image description here

Duplicate the body (or draw a vertical as long line) and insert the duplicate (=green here) below the arrow. You need it to get the arrowhead on the curve:

enter image description here

Turn the color of the bottom insert to 0% opacity. Select the whole shape and apply Object > Objects to Marker

Use it as start, middle and end marker for a path:

enter image description here

As you see, there's no intermediate arrow. That's because they appear only at intermediate nodes and there's none. You can insert intermediate nodes either manually by double-clicking with the node tool or by applying Extension > Modify Path > Add Nodes. An example:

enter image description here

It works, but it works well only with paths which have originally 2 nodes. But that surely covers quite a big bunch of cases where one wants these arrows on his curve. The section with arrows can well be a separate curve segment drawn only to carry the arrows.

The result is not still the best possible. The line thickness is changed and the size also is finally decided by Inkscape. It can be made better if you do the next things before defining the shape to be a marker:

  1. If you want to prevent stroke thickness variations convert strokes to paths

  2. To have editable arrow make a clone of the shape and define it to marker. Then you can edit the original to get different shapes, colors and sizes

5
  • 1
    I rewrote this answer because it's a VERY USEFUL IDEA which earns to be shown. The original text was too thin to be seen useful and collected fast downvotes. But the method has infinitely more applications than what was originally wanted (=vector distribution arrows in physics illustrations).
    – user82991
    Apr 29, 2022 at 22:58
  • @user287001: In fact with the new markers menu in Inkscape 1.2 it is much easier to control the markers' size, offset, etc. Here is an example: i.imgur.com/PtIc90p.png
    – s.ouchene
    Apr 29, 2022 at 23:51
  • Thanks for the notice. The 1.2 beta seems to be already available.
    – user82991
    Apr 30, 2022 at 7:09
  • This was the only answer that worked for me.
    – Foad
    May 4, 2022 at 14:18
  • heh i didnt know i can get down voats for linking video that solves the specific problem oh well :D
    – Adam Belis
    May 10, 2022 at 15:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.