0

I am using isometric view to make a diagram, and I find it challenging to rotate the figure in a single axis using transform and rotation tools on Inkscape. If I want to tilt the camera only along the Z-axis, what should I do?

If my intended rotation is unclear, let me help you visualize it: At the moment the object is oriented flat along the vertical direction, so if you put a ball on top, it would stay stable. But, once it is rotated in the z-axis, it would be tilted so the object placed on top would sway towards the side painted in dark red.

enter image description here

0

2 Answers 2

1

I understand what you are seeking....

However, Inkscape is not a 3D application.

You are seeking 3D functionality in a non-3D application. What you want to do is not possible in Inkscape, unfortunately.

What you have are flat, non-dimensional, objects. i.e. just 3 rectangles with sides at various angles, that's all. You can pull the rectangles apart and see that there's absolutely no 3D projections taking place. Similar to what can be created in any 2D vector application. This animation doesn't utilize Inkscape specifically, but to explain further....

enter image description here

The above may look like a 3D projection at the end, but it's not. It's still just flat 2D objects which have had angles adjusted to appear dimensional.

Any apparent dimensioning is just appearance, not real dimensional projections. As far as I'm aware, Inkscape doesn't create real 3D projections, including isometric projections. You need a 3D application for that.

If you wish to change the view angle, you must redraw at the angle you want.

Inkscape, like all 2D applications, understands X and Y on flat, perpendicular planes... meaning...

enter image description here

Inkscape has no clue what Z is or that it even exists.


You can see here how users can create the appearance of 3D in Inkscape, but they aren't creating actual 3D objects: https://www.educba.com/inkscape-3d/

1

There's no easy way to transform the already drawn box to the new rotation. It's possible if one knows and understands 3D projection math and how it can be used in Inkscape. Without that knowledge you do better by drawing a new box. I'll follow the latter route.

I counted the grid divisions of your "TEST" box, assumed that 1 div = 1 millimeter and drew 2 flat straight on the face rectangles of the same box.

enter image description here

Both are 26 millimeters tall. The red one is 19 millimeters wide and the other is 16 millimeters wide. There's no need to draw the 3rd (=top) face, it comes automatically right because this is a rectangular box.

We construct from these a copy of your original isometric box and a rotated version of it. The rotation is wanted around an axis which is parallel with the z axis. The angle is still undefined, but I guess it can be 30 degrees. The method is usable as well with other rotation angles, but the rotation axis must be parallel with one of the edges of the original box.

If the rotation axis was arbitary I wouldn't try to do the same in Inkscape, it would be much easier to use a 3D program (see NOTE1) - no matter the construction has been known hundreds of years as a part of engineering.

To convert the reconstructed flat faces to your original isometric projection is simple. One can use Inkscape's dialog Object > Transform. From there one needs tabs Scale and Skew. At first one must scale the items horizontally to 86,6%. The number is an approximation of sqrt(3/4), but it is good enough for this problem.

The original flat versions and their scaled copies are in the next image:

enter image description here

Then there's the skewing. The left one must be skewed vertically +30 degrees and the right one -30 degrees. We can just now cheat and skew both +30 degrees and flip horizontally the red face. In the next image they are skewed both +30 degrees and a flipped copy is made:

enter image description here

The parts snap together if you have all point snaps ON, but no snap to grid. The missing lines can be got by drawing with the Bezier tool (="the pen") on the top edges of the ready faces and moving the lines. They snap.

The manually drawn and moved lines are shown as blue in the next image. The rightmost version has colored faces. The top face cannot be colored as is, because it's not a closed shape. I drew a new 4-gon by clicking with the pen the corners.

enter image description here

If it happens that the text must be lifted to top after coloring the face, you select it easiest in the objects panel.

Your rotation goal keeps the "TEST" face still parallel with the XY-plane, so the isometric view of the rotated version can be constructed exactly with the same scaling and skew than above, only rotate it at first.

The next image contains the needed versions:

enter image description here

In the left there's the reconstructed flat original. The rest are

  • rotated 30 degrees (the angle can be arbitary)
  • scaled horizontally to 86,6%
  • skewed 30 degrees (for the isometric projection, no connection to the 30 degrees of the rotation)
  • drawn with the pen the missing lines. The Z edge is copied from the non-rotated box. The 2 other edges are drawn on the skewed face edges and moved. They snap exactly.

The rotated red face would need totally different transformation, so it's constructed indirectly. I skip more general proceedings. In the next image the faces are redrawn with the pen as closed shapes and colored to white and red:

enter image description here

ADD: I didn't use the grid, because it's perfect only for parts which have the edges parallel with x, y and z axles. Nothing prevents to construct a new grid for certain rotation if one knows the projection math. I skip it.

The corners of the rotated version will fit only in some lucky cases to the original grid - like just in your case the z-edge could be recycled and that made the construction simple.

NOTE1: The next image is a screenshot from a simple 3d CAD program.

enter image description here

Drawing one box with certain dimensions and text is about as complex as making your original box in the grid. But all rotated copies took only a few seconds each. BTW. I switched the projection from isometric to a perspective projection, because for some reason the rotated boxes started soon to look distorted in isometric projection. There's no imaging error, it's a property of human vision.

3
  • Well its not actually true is it. I mean you can rotate one face at a time. But im not sure the op wants the math.
    – joojaa
    Commented Jun 12, 2022 at 5:23
  • unbelievable effort, thank you for your post! I will be checking back your response when it is finished. Commented Jun 12, 2022 at 9:30
  • @dynamicdivergent One can directly rotate the z plane by 5 degrees with the matrix A: 0.952617, C: 0.0754791 B:-0.125798, D: 1.03977 (i think this is correct computed in mathematica but don't remember inkscapes convention) place rotation point at page origin and copy into transform dialog under matrix (don't check use current matrix), keep hitting apply. Since inkscape only uses 3 digits of precision it will drift over rotations but okay for small rotations. See graphicdesign.stackexchange.com/questions/107509/…
    – joojaa
    Commented Jun 12, 2022 at 20:36

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.