Advertisement Jump to content
Sign in to follow this  

DirectX for CAD applications.

This topic is 1824 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have studied the 2D drawing tutorial from and if I understand correctly an orthographic projection can be set up so that primitives like vertexes lines and triangles can be drawn in screen co-ordinates.


I have an interest right now in starting on a CAD application. Before I was into programming I was a drafter and there are certain aspects of a CAD application that I am looking to incorporate in my application. CAD applications have the concept of a top view and top view has these properties.


- If a one unit square is drawn and placed on the plane Z=0 and another unit square is drawn and placed on the plane Z=-100 in top view the squares still appear to be the same size even though they are 100 units apart on the Z-axis.


Is the orthographic projection still the way to accomplish this goal with DirectX? It seems at this point that if an orthographic projection is used to create a top view effect like the one I describe then there is going to have to be a translation from world co-ordinates to screen co-ordinates. For example in a CAD application when the user draws a unit square he is drawing in world co-ordinates. So if I were to use an orthographic projection and call the center of the screen the equivalent to world co-ordinates (0,0,0) then the co-ordinates of the unit square drawn in world co-ordinates is going to have to be translated into screen co-ordinates. That translation is going to depend on the users zoom level in top view as well as the pan location.


Is the orthographic projection the right technique for this type of application?



Share this post

Link to post
Share on other sites

As Mona2000 mentioned (rather succinctly), the answer is yes - you can (and probably should) use orthographic projection.


With regard to some of your comments, it seems you're concerned with converting coordinates. You needn't pay much attention to "converting" world coordinates to the screen. That can be taken care of by the projection and view matrices. I.e., drawing objects produces world coordinates; the projection and view matrices will do the conversion to screen coordinates for display.


A little more difficult part of such an application is unprojecting screen coordinates. However, in DX9 anyway, there are functions to do that. If the user uses a mouse to draw a unit square in ortho, your input will be in screen coordinates (where the mouse is). You'll convert those 2 mouse coordinates to 2 world coordinates (say, mx-to-worldx and my-to-worldy) and have to provide a method for the user to set the third coordinate - e.g., switching from front- to side-view and have the user set the z coord.


The Blender modeling program, for instance, lets you set a 3D cursor. In ortho mode, say, front-view looking down the z-axis, clicking the screen sets the cursor to some x-y value. You can then switch to side view, say looking down the -X axis, and click to set the world z-value of the cursor. That 3D cursor defines default X-, Y- and Z-planes. Back in front-view, you can draw a unit cube, specifying the x-y coordinates and it will be created in the default z-plane.

Edited by Buckeye

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!