2

Short version :

I have to points (nodes), A and B, on one layer. I have a scanned drawing (picture) with the same 2 points (A' and B'). How can I scale and rotate the picture such that A and A' (and B and B') match? (in order to re-draw in inkscape the sketch done on paper, but with correct scale and orientation).

Alternatively, how can I set an arbitrary fixed point for scalling (I found the solution for rotating)? This way, I match A and A', and then scale and rotate manually to match B and B'.

Long version :

I have a sketch of a cave (ie a drawing on paper, not on scale (and "scale" not the same in all parts of the image), not respecting orientation, with some distortions , ...). I scanned this sketch. On the sketch, I have poins marked with numbers.

On the other hand, we did the survey of the cave (with laser), so I know exactly where the numbered points are. I exported to inkscape all the numbered points (with correct scale and orientation).

What I'm trying to do, is to re-draw the sketch in inkscape, but this time with correct scale and orientation.

The "ideal" solution would be to just specify the matching points on the image and let Inkscape distort/scale/rotate the sketch to match them. But I don't think there is such feature (in case there is, I'm interested).

The more realistic solution, is that I always match 2 points (lets say points 4 and 5) between sketch and survey, by scaling and rotation the scanned sketch, then I draw the cave section between 4 and 5 (rather easy now that I can just copy the sketch). Then I start again between 5 and 6.

Matching the first point between sketch and survey is easy (I just move the sketch around). The more dificult and time consuming part is to also match the second point (scaling and rotating), because when scaling or rotating, the first point also moves.

For the rotation I found the solution here : when in rotation mode, I can click and drag the litle cross that is in the middle of the image, in order to change the pixed point.

But I haven't found a solution yet to set the fixed point for scaling (other than using a corner or the center).

To illustrate the problem : sketch and survey The points 4 and 5 are aligned between sketch (on scanned paper) and surway (tiny grey circles with blue numbers) : so I could draw (in black) the cave between 4 and 5. Next step will be to align 5 and 6.

So do you know how I can either :

  • scale, rotate and move the sketch in order to match 2 arbitrary points with the survey

or

  • how to specify a fixed point for scaling
3
  • 1
    Hi. Welcome to GDSE. I don' think there is an easy way to do this. You can hold down Ctlr+Shift while you click and drag a scale handle to scale based on the rotation centre you set, but there is no way to choose a second point to scale it to. You might be able to use guides to aid you.
    – Billy Kerr
    Apr 2, 2023 at 19:54
  • Thanks a lot! You should make your comment an answer : you defintively answered the question how to scale while specifying a fixed point. The fact that it is the same as the rotation ccenter makes things even easier. 1) I match point A and A'. 2) I move the rotation certer to A'. 3) I rotate the image until B' lies on the line AB (it hapens that it is already drawn (in red) so I don't even have to draw a guide line). 4) I scale the image while holding Ctrl+Shift, so I can match B and B' without moving A'. This way, I'm at least twice as fast as by trial and error.
    – Sandro
    Apr 2, 2023 at 20:58
  • oh great! Glad that helped. I've added it now.
    – Billy Kerr
    Apr 2, 2023 at 23:48

2 Answers 2

1

I don't think there is an easy way to do this, TBH. However, the rotation centre could be used for what you want, kind of. . .

You can hold down Ctlr+Shift while you click and drag a scale handle to scale based on the rotation centre you've set, but there is no way to choose a second point to scale it to. You might be able to use guides to aid you.

1

Your sketch obviously is badly warped when compared to the measured set of points. You want to move the markers of the measured points in the sketch to the exact measured plane positions and you hope a way to force the rest of the sketch to follow i.e. to get stretched and squeezed so that the sketch still keeps its local forms.

Such tool exists, but it's not in Inkscape. You need Photoshop. Its Puppet Warp does what I assumed you expect. You must have the exactly measured points as brightly colored in the top layer, which is otherwise transparent. The sketch is in the bottom layer.

Then you take the bottom layer under Edit > Puppet Warp. You insert warp control points to the sketch near the markers of the sketched places of the measured points. Then you drag the control points until the sketched markers are near enough the exact measured points.

The result is a bitmap, but you can redraw the fixed sketch in Inkscape.

There are numerous other bitmap image warping tools which use movable control points. People who make photos to lie or convert them to caricatures use them frequently. I have only Photoshop for such purposes.

Simplest photo warping applications do not allow a separate reference point layer. That makes them useless for your job.

Photo morphing programs do more than only warping. They interpolate intermediate versions so that one can get a continuous transformation video. A photo morphing program can also be used if it allows a separate reference point layer.

Let's assume you have finally succeeded to warp the sketch so that the measured point and their sketched markers meet. Then you may have a temptation to measure something from the warped sketch. Do not assume something else in the cave than just the measured points can be measured with some known accuracy from the sketch. The warped sketch can be used only for visualization.

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.