Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

07-29-2011 02:06 PM

Options

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report to a Moderator

The 3D picture has a property called "ModelVIew Matrix".

The help reads

"

Reads or writes a matrix that contains the translation, rotation, and scale values for the 3D scene that appears in the 3D picture control.

"

This matrix changes when I manipulate the scene, rotating dragging zooming etc.

I have taken that value and wired to a similar porperty of another 3D picture and it will follow the changes applied to the first 3D picture, great!

BUT, My intent is to create a small naviagation window that contains only a XYZ axis that will rotate with the first 3D picture but will NOT ZOOM.

So it looks like I will have to msage the matrix to cancel out any zooming. TO do this, I suspect i will have to pcik apart that matrix and normalize it OR SOMETHING!

So, does anyone out there in Wire-World have an idea how to work with the 4X4 matrix?

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel

07-29-2011 02:53 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report to a Moderator

index 2,3 seems to be the zoom factor but why is it negative?

Still poking around,

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel

07-29-2011 03:24 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report to a Moderator

I would investigate an OpenGL reference for the specifics of how that matrix relates to the Up, Target and Camera position. In general, n-D affine transformations are performed with an n+1 x n+1 matrix. In this case you have a 4x4 matrix. The upper 3x3 matrix is the combined scale/rotation matrix. The scaling transformation is diagonal with each axis scale factor on the diagonal. The rotation transformation is your standard 3x3 rotation matrix. These are combined via multiplication. The first three rows of the fourth column are translations, and the fourth row is [0,0,0,1] to maintain affinity.

The devil is in the details which include sign conventions and the order of transformation (matrix multiplication does not commute). You would have to consult an OpenGL reference, or perhaps with these clues you can sniff it down.

Somewhat helpful: