How to draw 3d illustrative physics pictures as above? Is inkscape capable of doing it (might be possible but afaik it is tedious), or should I use a cad tools like FreeCAD or Blender to achieve the same? Or is there other tools that might help achieve the same?
-
Yes Inkscape is capable, but it's 2D software, not 3D. You can fake 3D in 2D though. Some of the shapes look a little tricky for Inkscape though, although not impossible. See this closely related question, It's not quite a duplicate: How to draw mathematical diagrams in inkscape, but the basics would apply to almost any diagram.– Billy KerrCommented Sep 22, 2023 at 10:51
-
Apart from the 3D cube tool, Inkscape has no 3D capabilities, and even that is not true 3D. However, it's obviously still possible to manually draw 2D shapes that look like they are in 3D. I did this in a couple of minutes as a rough example.– Billy KerrCommented Sep 22, 2023 at 11:16
-
@BillyKerr theres no 3d needed in either of the image you can just do all of the 3D needed here with the matrix manipulation of object– joojaaCommented Sep 22, 2023 at 14:57
-
I would agree. Technically no "3D" is necessary.. there's no lighting, no shadows. It's a simple projection that could be created entirely in a 2D app such as Illustrator or Inkscape. Now how easily the projection is created comes down to familiarity with the 2D application.– ScottCommented Sep 22, 2023 at 17:27
4 Answers
You can have many types of styles. Some are made of vectors, some are drawn by hand some are 3D mechanical projection, some 3D artistic render, etc.
The specific style you are showing is clearly a 2D vector, not a 3D render.
But regardless of the specific technique, you need to plan. Here are not specific steps, because it is not a drawing course, just a proof of concept. Made in Corel Draw.
- In this case, you need to make the elements orthogonally.
Then deform them to simulate the change in angle or actually transform the planes. Look for Skew or a similar concept in Inkscape. Also a simple stretch or scale on X.
Repeat and play.
But personally, I would not do this only in 2D, but a composite on Blender.
You need to do some homework.
Turn on import images as planes.
Import the individual planes (already made in Inkscape)
Define the camera as an orthographic camera.
Rotate and Play
But there is much to learn.
There is an alternative tool. Colaboration You could work with an illustrator.
Cheers.
As noted in the other answers, you're going to have a 2D result of your 3D source items, but I suspect that is your objective. Any 3D creating software will allow you to generate the images you've provided (or similar, of course) and a screen capture or image export (if available in the software) will give you a raster image. I also expect that your goal is not tied to specifically vector format output, correct me as required.
I'm more capable in OpenSCAD, a text based "scripting" program to generate items of this type, although I'm not experienced enough to generate a sine wave. I'd probably be able to find a library that is capable of doing so. OpenSCAD provides for PNG file output and customization of the background.
A real "old-timer" that may also work is POV-RAY, which is also text based. It is designed specifically to create three dimensional scenes using primitives and modifiers in a manner similar to OpenSCAD.
Each image courtesy of respective linked site.
As noted with the other suggested programs, there's going to be a learning period for both of these programs that may impact your productivity.
Is inkscape capable of doing it (might be possible but afaik it is tedious), or should I use a cad tools like FreeCAD or Blender to achieve the same?
Yes. The image presented as a idea of what to do is is really simple. For you to replicate this the easiest way is to use the tool you already know how to use! So in this special case Inkscape is actually the least tedious one by a wide margin, only because of special circumstances in the mage. But that changes quickly with volume and need. Both FreeCAD and Blender are factories for creating images, but also require some setup time.
Now the real answer to the question you are asking depends on how many images you need to do and what output you need the image to have. See conceptually drawing in FreeCAD or Blender is the same skill needed to draw in Inkscape, or at least roughly. So on a elementary level you still need to learn all the skills needed to do this in Inkscape. Contrary to perceived tedium, its also tedious to learn how to use Blender and FreeCAD for this too. So realistically, the only sane move is to learn Inkscape and one of Blender and FreeCAD at the same time.
So before you begin with this ask yourself:
- How long would it take for you to neatly draw the image by hand?
- Do you need the image to be vectors, or do raster images suffice?
- Do you need to animate?
- What kind of prerequisite skills do you possess?
- How much time do you have?
If answer to number 1 is more than 10 minutes, then Inkscape starts to look really unfavorable for you. It also makes Blender less than ideal so most likely FreeCAD, but you will be severely limited in coloring options. That said your in a really bad situation and going to have to invest serious amounts of effort to any of the software. Try to find a person who can tutor you.
If answer to number 2 is yes, then blender starts to look slightly unfavorable (though does not drop the ball entirely). And learning both inkscape and freeCAD becomes attractive.
If answer to 3 is yes, and i mean really consider your need for animation (dont do it because of want). Even talking about tediousness in conjunction with inkscape to animation is like comparing a feather to a weightlifters fully laden barbell. But if you need this then realistically you need a Blender, or something similar.
Also consider Latex and PStricks; Mathematica.
PS: I don't generally advice anybody to use FreeCAD. Yeah I have it installed, for one use case where i could also use Catia, but yeah. Anyway I am capable of drawing this in FreeCAD, though not with the coloring freedom. Id page out to a vector editor pretty quickly. I would prefer not to use blender for illustration, but sometimes it is handy. But then i have lots of options.
-
i have done engineering drawing course but it was all pencil and paper, i have drawn few diagrams in autocad in my college days but im not an expert, so i thought freecad might be good, a little playing around would get me up to speed, i have some animation experience in blender(mostly keyframes, if that is what it is called). it would be nice to have vectors so i can scale or animate any way i want, 3d means i can take shots of different angles. i hope this clears my background. Commented Sep 23, 2023 at 15:55
-
i use mathematica regularly and dont want to use it, i am trying to keep it all under open source tools. Commented Sep 23, 2023 at 15:56
Pointing out the obvious because the question implies a lack of understanding about illustrations: There is no such thing as a 3D illustration. Unless you're talking about a hologram or other method of display that has an actual depth component. All illustrations on paper, computer screen, billboard, TV or any flat display medium are, by definition, two-dimensional.
You can see, at most, three faces of a cube at one time, whether it's in a 2D drawing program or a 3D one.
Of course there are 3D programs, but they just allow you to draw and move objects as if there were a third dimension on the screen. At any moment in time, you're looking at only a two-dimensional view of the objects.
Long winded answer to say, yes, any vector drawing program can be used to create the illustration examples in the question. You just need the drawing and visualization skills to do it. If you need to be able to rotate an image in 3 dimensions, then yes, you need a 3D program like Inventor or Sketch-up or Blender. But creating a diagram like the examples in 3D originally can be a lot more complicated than creating a flat illustration in a regular vector drawing program. In 3D, you have to create everything as a solid object, so it can be rotated to views you may never use. Unless the viewer is going to be manipulating the drawing in 3D, there is no reason to create the original in 3D.
-
I would like to point out that the sentence "In 3D, you have to create everything as a solid object..." Is untrue. No you do not have to. There are plenty of applications that can just draw curves just like in 2d application in 3d space, no need to solid anything.– joojaaCommented Sep 22, 2023 at 16:13
-
Makes sense. But would such a curve be 3D automatically? Or it is 2D and disappears in one of the three dimensions?– user8356Commented Sep 22, 2023 at 18:14
-
Well dimensionality is a bit of a weird concept. So if its a line yes it would disappear or diminish to a point looked from front or back of the line. But if its a curve then it has ~2.5 dimensions, so it might have a shape regardless where you look at it. Think of it as a bezier with points that are truly 3D. For an example think of a curve that forms a helix. But how the software does this depends on software, most likely its either just stroked like a vector in the 2D view after projection. But some software makes then non shading pipes. Depends on how you want to do it.– joojaaCommented Sep 22, 2023 at 18:22