Contents | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Previous | Next

22. 3D Graphic Window Logo


SimplexNumerica has integrated a High-performance 3D Chart Graphic in a separate window and integrated layout environment.

If you keep the standard arrangement of the X and Y axes in two dimensions, you can add the Z axis theoretically in two possible ways. If you think of the X-Y plane as lying parallel to the surface of this page, the Z axis could point into or out of the page. These different choices are called right-handed and left-handed coordinate systems, respectively, because you can use your hands to remember how the axes are related.

 

SimplexNumerica used the left-handed coordinate system (see figure). If you point your left thumb along the Z axis in the positive direction in a left-handed coordinate system, your fingers also curl in the direction leading from the X axis toward the Y axis.

 

The measure angle of rotation is used counterclockwise. This rotation direction has the advantage that rotating around the Z axis agrees with rotation in two dimensions. If you look down the positive Z-xis toward the origin, angles increase as you rotate from the positive x-axis toward the positive Y-axis.

 

You can show a 3D coordinate system as a 2D system with the following parameter:

 

 

It will looks like the next figure:

 

 

 

 



Perspective 3D Parameter Top


Because our computer’s screen is two dimensional, it cannot directly display three-dimensional objects. If we want to display three-dimensional objects on our two-dimensional screen, we must project the objects from three dimensional to two.

 

Most generally, a projection translates an object’s representation from one set dimensions to another. The most common projection types are called Planar Geometric Projections. They are defined by the passing of a ray called a projector from a center of projection through the points being projected onto a plane of projection. The next figure shows the projection of a triangle.

 

The next dialog is for the Perspective 3D Parameter in SimplexNumerica. You can put in

 

·        Projections

·        Rotation Angle

·        View Point

·        Light Vector

 

 

 

Planar geometric projections can be grouped into two glasses: parallel and perspective. These are described in the following sections.

 

The view point is similar to the place of the projectors. The Light Vector coordinates is the Sun Point.

 


3D Animation Window

 Now we would like to describe the animation window for simple perspective animation. Call this window either from the left Toolswindow or with the key <Ctrl + F3> if the 3D-Window is on top.

 

 

 

 

 

 

 

 

 

 


Rechteckige Legende: Intensity PartRechteckige Legende: Colour PartRechteckige Legende: Rotate SymbolRechteckige Legende: Move 3D ChartRechteckige Legende: View PointRechteckige Legende: Rotate around X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


A        Perspective Projection                C        Cavalier Projection

B        Parallel Projection                      D        Cabinet Projection


Parallel Projection

In the parallel projection, the projectors are parallel to each other. If you move the center of projection farther and farther away from the plane of projection, the projectors become closer and closer to parallel. If you take this to its limit, you need to specify a direction of projection.

 

The next picture shows the parallel projection of a chart.

 

Isometric Projections

An Isometric Projection is a common type of axonometric orthographic projection in which the direction of projection makes equal angles with all three coordinate axes.

 

Because the direction of projection makes the same angle with all three axes, yo can measure distances along all three axes using the same scale.

 

Orthographic and Oblique Projections

Like front, top, and side view orthographic projections, oblique projections are made with the plane of projections perpendicular to one of the coordinate axes. Because the projectors are not perpendicular to the plane of projection, however, more than one face of an object is visible.

 

Because one face of the object is parallel to the plane of projection, you can measure distances and angles on that face.

Orthographic:

Projectors are perpendicular to the projection plane

 

Oblique:

Projectors are not necessarily perpendicular to the projection plane

 

Cavalier Projections

This is a standard type in SimplexNumerica. Here the projectors meet the plane of projection at a 45-degree angle. With this sort of projection, a line perpendicular to the plane of projection is transformed into a line that has the same length as the original line. This means that you can measure as well lengths using the same scale along all three axes.

 

The next picture shows the Cavalier projection of a chart.

 

 

Cabinet Projections

This is also a standard type in SimplexNumerica. In a cavalier projection, the projectors meet the plane of projection at a 45-degree angle but in the cabinet projection, the projectors meet the plane of projection at an angle of atan(2). In other words, the tangent of the angle between the direction of projection and the plane of projection is 2.

 

The next picture shows the Cabinet projection of a chart.

 

 

While distances are preserved along all three axes by a cavalier projection, distances in one direction are scaled by a factor of ½ in a cabinet projection. This makes cabinet projections a bit more aesthetically appealing than cavalier projections. Making the receding axis shorter than the others agrees more closely with orthographic projections and maybe your visual experience, so the picture looks more realistic.

 

Perspective Projection

In a perspective projection, the projectors pass from a center of projection through each point in the object to the plane projection. Because the projectors pass through a single point, the projection of an object far from the center of projection is smaller than the projection of an object that is closer.

 

The next figure shows e.g. a surface plot with a contour on top in perspective projection.

 

 




Dimensions Top


The previous chapter described the most of the perspective 3D parameter in SimplexNumerica. The dimensions of the chart have also influence on the manifestation of a 3D Object.

 

Although the Animation Window is already explained in the previous chapter we will show it here for the dimension parts in it.

 

 

 

 

 

 


Rechteckige Legende: Zoom FactorRechteckige Legende: Relative y PositionRechteckige Legende: Length of x-AxisRechteckige Legende: Width of z-AxisRechteckige Legende: Stretch Border Thickness

 

 

 

 

 

 


You can do this stretching certainly with accurate meter values as shown in the next dialogbox.

 

 

Call this dialogbox either with help of the right mouse button or from the Pulldown-menu <Edit>, menu point <Dimensions>. You can edit the data directly in the metric unit mm.

 

Augmentation Factor (Zoom Factor)

Maybe Zoom Factor is the better word for it. It should be clear what it does.

 

 



Number Format Top


In the number format dialogbox is for each 3D axis an entry available. Select the appropriated axis and setup the format for it. Press the button apply if you want to setup more than one axis to the same time.

 

 

 

The following formats are available:

 

Format

Example

or

or

Normal

123.14

 

 

Scientific 1

1.2314E02

 

 

Scientific 2

0.12314E03

 

 

Technical

123.14E00

 

 

Date

23.07.1996

07/23/1996

23-07-1996

Time

16:10

 

 

Date and Time

23.07.1996 16:10

07/23/1996 16:10

23-07-1996 16:10

 

<Automatic Decimal Places> sets the <Decimal Places> automatically via program. If you don’t like that, then unhook the checkbox and set the value for the right axis manually.

 

The date format can be changed with the help of the right Combobox.

 

The button <Apply> applies the setup without to leave the dialog.

 

The <Exponent> is for the number of places behind the <E> (e.g. 123.4E02).

The Power of ten can be shown either e.g. as 123.4E02 or 123.4 102, respectively.

 

The <Decimal Separation Character> can be set to <Comma> or <Point> (Dot).

 



Grid Top


 Grid lines are separated in into rough and fine grid. The grid can be set for each axes type. Use this popup menu for the appropriated axis. Call it with help of the right mouse button.

 

 

Use the colour combo box to setup the best colour for your grid lines.

 



Interval & AutoScale Top


AutoScale is used to automatically scale the axes interval of any chart based on the extremes (maximum/minimum) of all Memory Record Graphs.

 

Autoscaling may be set individually on the x, y or z axis or globally on all extra axes. The default is to AutoScale all axes.

 

When Autoscaling, the axis range is automatically computed and the dependent axis is scaled to include the range of the graph or data being plotted.

 

In the TestMode an AutoScale dialogbox for the interval calculation appears after each calculation, which leads to an output in the coordinate system.  This dialogbox and the dialogbox for the interval input and partitioning of the interval are explained in the following chapter.

 

The program flow will be improved by this AutoScale dialogbox crucially, because the user does not have to look in a Pulldown-menu for the continuation of the program, because it is explicitly referred what to do next. 

 

The AutoScale dialogbox inquires to you whether SimplexNumerica is to make the interval scaling automatically or whether it will be done manually, whereby you can combine both methods. 

 

By which data array the interval boundaries are calculated is depend from selection SampleData or CurveData. 

 

Meaning of the individual branches:

 

AutoScale (automatic interval calculation and scaling)

Call that AutoScale routine for the calculation of optimal interval delimitation and rounded numbers at the axes. How the interval delimitation has to take place can be decided under Pulldown-menu <Edit>, menu option <Properties>. 

 

Manual with Auto (manually with automatic interval calculation)

Here the AutoScale menu option will become executed and the values are automatically entered in an interval dialogbox, of where they can be edited. The automatically calculated physical dimensions are thus always only once to be entered. 

 

Manual without Auto (manually without automatic interval calculation)

Here the menu option AutoScale is not executed.  Use it, if you like to determine the interval boundaries manually.

 

Remain (Interval like before)

Here the originally available interval will be preserved.  If you want to use the same interval delimitation several times consecutively, please click on remain button, and the coordinate system is represented immediately.  An exception represents the logarithmic coordinate system; whereby a dialogbox will be appearing for the input of the logarithmic interval border. 

 

Cancel (Does nothing)

Clicking cancel causes that the following program run will be interrupted, i.e. the coordinate system is not re-structured.

 

Next, the editing boxes of the interval delimitation and partitioning follows. 

 

The following dialogbox appears after pressing the Manual buttons:

 

The 3D interval dialogbox differences from the 2D counterpart. Here you can set only the axes interval and not the interval from the graph.

 

 

 

If you want, then you can <Calc Axis Subdivision> manually or automatically by the program. <Use AutoScale> for the interval border to get even good numbers for it. Unhook each checkbox to fill the fields by yourself.

 

You can call this dialogbox also with the help of the right mouse button from the popup menu.

 

Furthermore additional characters can be attached for Scaling Text. This can take place separately for each axis, or even for further axes, e.g. the right hand axis. Use also here subscript and superscript for text input.

 

Note:

Demystification in the 3D Chart can often be done with the help of the AutoScale algorithm.

 

Use following shortcuts (keys) for faster call of the AutoScale functions.

 

Redraw (Shift + ESC)

Redraw does only that what it says. It refreshed the content of the 3D-Window. Sometimes the program will not redraw all the time another window(s) because of the performance during runtime. So if necessary, you can do that manually with the help of this menu or with key <Shift + ESC>.

 

AutoScale (ESC)

This menu item automatically scales the diagram so that all records and limits are displayed. It is similar to the direct call of the button AutoScale in the next dialog.

 

New Interval (Tab)

<New Interval> calls the above Interval Dialogbox. The button AutoScale can also be direct called via previous menu.

 

 

Remain

Will not change the interval limits after recalculation of the chart.

 



Settings Top


The settings are mainly for the 3D charts. Call the next dialogbox with the right mouse button or from the Pulldown-menu <Edit>, menu point <Settings>.

 

 

Here you can set

 

  • Chart Border
  • Subdivision of the x, y and z-Axis.
  • Tickmark-Length
  • Line Width
  • x, y and Scale Steps
  • Scale Font
  • Wall Colour

 

Play around the parameters and try to find the best look for you. You can also use the Animation Window to change the appearance of the chart.

 

 There are three main chart borders for the 3D look available, a colour shaded and two conventional coordinate systems. The following figure shows you examples of the same plot

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




Properties Top


The 3D properties are depending from the chart on the 3D-Window. You can call this dialogbox best with right mouse button and the popupmenu. Also possible is to call it over the Pulldown-menu <Edit>, popup menu <Properties> and depend on the chart on the screen, either the next properties for are possible.

 

  •  Cloud Points
  •  Polygon
  •  Slices
  •  2D-Curve
  •  Ribbon Chart
  •  Bar Chart
  •  Block Chart
  •  Tube Chart
  •  3D-Surface
  •  3D-Surface with Contour Plot on top
  •  3D-Surface with Contour Plot under the Mesh

 

 

Please go to each individual chapter for a detailed description.

 




Cloud Points Top


 Cloud Points

 

 



Polygon Top


 Polygon

 

 




Slices Top


 Slices

 

 



2D-Curve Top


 2D-Curve

 

 




Ribbon Chart Top


 Ribbon Chart

 

 



Bar Chart Top


 Bar Chart

 

 

 




Block Chart Top


 Block Chart

 

 

 



Tube Chart Top


 Tube Chart

 

 

 

 

 

 

 

 

 

 

 




Surface & Contour Plot Top


A surface plot is easily confused with a smoothed mesh surface plot. In the former, the surface of the raw data is drawn while in the latter a smoothed summary surface is presented. In a surface plot as shown in next figures, the data values of X and Z are plotted along the two horizontal axes while the data values of Y determine the height of the vertical axis. The appearance of a surface plot is tied to the grid size like the shape of a histogram is affected by the bandwidth. Small bandwidth will lead to a surface plot that appears with many spikes while larger bandwidth leads to an appearance of smoother mountains.

 

Because a viewer’s perception of the surface plots depends on the viewpoint, they are sometimes called perspective plots. It is desirable for you to vary the grid size and the perspective of the surface plot while doing data exploration.

 

In order to overcome the viewpoint limitation, a contour plot takes a bird’s eye view. In a contour plot, the y-Axis is hidden and the data values in y are represented by connected lines at discrete levels. Although a contour plot is less viewpoint-dependent than a surface plot, it is still not as perspective-free as a volume model.

 

Another shortcoming of a contour plot is that in some cases it cannot show "holes" in the data. For example, when a dataset has lower data values at the center, a contour plot cannot show the "hole" clearly, because it assumes that contour lines of lower levels are longer and are located at the outer edge while the shorter isolines denote higher values. Moreover, the band height of the isolines determines how a contour plot appears. Therefore, you should consider construct contour plots with different band heights in order to not to be "stuck" in one drawing.

This picture is brought in this manual via Windows Metafile Format from SimplexNumerica to Word. By the way, there is one (or more) problem with metafiles under Windows (also XP). It is, no doubt, a vector file format but without any knowledge about device information. For instance, each font type has stored information about its height and length. SimplexNumerica calls Windows functions for the information, e.g. for setting a text vertical centric in the middle of tickmark. Now, when writing a metafile, this information about the height is zero and the text can not set correctly.

 

You can call the surface plot either with the right mouse button from the popupmenu or from the Pulldown-menu <Display>, menu point <3D-Surface>. The properties of the surface can be set in the next dialogbox.

 

 

Surface Density

The Surface Density is the mesh grid in x and z direction of the 3D chart. The grid is the number of equidistant data points along the axes. Values around 60 are usual densities.

 

Surface Grid

There are some parameter to vary the surface grid and the mesh.

 

  • Use <Draw Mesh> for drawing mesh lines over the surface.
  • <Attach Apron> to the ground for another view.
  • Switch the <Light Source On> then the background colour will be generated automatically bay the program.
  • Use colour or grey shadings
  • Set a Offset to the colour values
  • Change the Intensity of the colour
  • Choose a special pattern for non shading views

 

3D Demo Functions

The demo mode is nice for playing around the 3D part with some prepared functions and intervals. Each function maybe has a different interval (xmin, etc.) that is normally very confuse to setup. So that the program has the best matching ones prepared for you.

 

Switch the demo mode off for using real data from the ArrayEditor (or from external).

 

 

Iceberg Demo Function

 

 

Approximation and Interpolation

3D Approximation and Interpolation is sometimes difficult to handle. The result is very depended from the sample data and the used algorithm.

 

SimplexNumerica has integrated some different algorithm for 3D fits. The following fits are implemented:

 

  • Thin Plate Surface Spline Interpolation
  • Thin Plate Surface Spline Approximation
  • Bivariate Cubic Spline Approximation
  • Nearest Neighbours Distance Weighted
  • Nearest Neighbours Linear Interpolation
  • Nearest Neighbours Around Distance Weighting

 

Thin Plate Surface Spline

Thin Plate Surface Spline, or TPS for short, is an interpolation method that finds a "minimally bended" smooth surface that passes through all given points. TPS of 3 control points is a plane, more than 3 is generally a curved surface and less than 3 is undefined.

 

The name "Thin Plate" comes from the fact that a TPS more or less simulates how a thin metal plate would behave if it was forced through the same control points.

Thin plate splines are particularly popular in representing shape transformations, for example, image morphing or shape detection. Consider two equally sized sets of 2D-points, A being the original shape and B the target shape. Let zi=Bix - Aix. Then fit a TPS over points (aix, aiy, zi) to get interpolation function for translation of points in x direction. Repeat the same for y.

 

In some cases, e.g. when the control point coordinates are noisy, you may want to relax the interpolation requirements slightly so that the resulting surface doesn't have to go exactly exactly through the control points. This is called regularization and is controlled by regularization parameter λ. If λ is zero, interpolation is exact and if it's very large, the resulting TPS surface is reduced to a least squares fitted plane ("bending energy" of a plane is 0). In our example, the regularization parameter is also made scale invariant with an extra parameter α.

 

Given set C of p 3D control points....

 

Eq. 1

 

...and regularization parameter λ, solve unknown TPS weights w and a from from linear equation system...

 

Eq. 2

 

..., where K, P and O are sub matrices and w, a, v and o are column vectors, given by:

 

Eq. 3

 

Note that L, and thus also its submatrix K, is symmetric so you can calculate elements for upper triangle only and copy them to the lower one. Also, α (mean of distances between control points' xy-projections) is a constant only present on the diagonal of K, so you can easily calculate it while filling up the upper and lower triangles.

 

Then, once you know values for w and a, you can interpolate z for arbitrary points (x,y) from:

 

Eq. 4

 

Bending energy (scalar) of a TPS is given by:

 

Eq. 5

 

Note:

The TPS algorithms in SimplexNumerica are suitable only for a small number of SampleData points (ca. up to 150).

 

 

 

Bivariate Cubic Spline

The authors Jörg Haber, Frank Zeilfelder, Oleg Davydov and Hans-Peter Seidel from Max-Planck-Institut für Informatik, Saarbrücken, have described an article about <Smooth Approximation and Rendering of Large Scattered Data Sets>. So search in the internet for this article about Bivariate Cubic Splines.

 

They have presented an efficient method to automatically compute smooth approximations of large sets of unorganized scattered data points. The method is based on the construction of a differentiable bivariate spline with respect to a uniform triangle mesh over an arbitrarily shaped planar domain. For a uniformly distributed subset of triangles we compute local polynomial least squares approximations by using singular value decomposition (SVD) of small matrices.

 

The smooth approximating spline is constructed by gluing together these patches using Bernstein-Bezier smoothness conditions. We emphasize the following key features of our method: They develop a completely local approach, which means that we do not use any global optimization or other techniques involving computation with large portions of the data set. They employ the rank-revealing features of SVD to control the polynomial degree of the initial patches, which allows taking into account the local variation and distribution of the data points.

 

Nearest Neighbor Algorithm

The nearest neighbor query ranks all objects in terms of their distance from a query object which is a a point. The point query object is specified by positioning the mouse over it and clicking it. The objects are displayed in the order of their distance from the query object along with their position in the ranking.

 

The neighboring objects are found in an incremental manner. In other words, having found the k nearest neighbors, in order to find the k+1st nearest neighbor, the algorithm does not recompute the set of k+1 nearest neighbors; it just finds the additional neighbor. The incremental nearest neighbor algorithm (see G. Hjaltason and H. Samet, Ranking in spatial databases in Advances in Spatial Databases - 4th Symposium, SSD'95, M. J. Egenhofer and J. R. Herring, Eds., Lecture Notes in Computer Science 951, Springer-Verlag, Berlin, 1995, 83-95) makes use of a priority queue where the queue elements are the blocks of the underlying data structure as well as the objects themselves. The priority queue is ordered on the basis of the distance of its elements from the location of the query object which is a point in our implementation. In case of a tie between two spatial objects (i.e., two non-block objects have the same distance from query point p ) and if the distance is zero and if the object has extent and area (i.e., a rectangle), then use the distance from p to the nearest boundary of an object that contains p (if such an object exists) as the discriminator for the ordering.

 

The algorithm works in a top-down manner in the sense that as elements are removed from the queue, they are checked if they correspond to blocks that are not at the lowest level of the hierarchy (i.e., nonleaf nodes). If this is the case, then their immediate descendants (i.e., the sons) are inserted in the queue ordered according to their distance from the query object. Otherwise, the objects that they contain are inserted into the queue ordered according to their distance from the query object. If the element e that has been removed from the queue is a data object, then e is reported as the next nearest neighbor of the query object.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Contents | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Previous | Next
Copyright © 1988-2006 Dipl.-Phys.-Ing. Ralf Wirtz
Author: Ralf Wirtz
Last modified: 3 Mar 2006 15:14
Authored in CALnet