diff options
author | Leena Miettinen <riitta-leena.miettinen@qt.io> | 2017-03-15 16:30:41 +0100 |
---|---|---|
committer | Leena Miettinen <riitta-leena.miettinen@qt.io> | 2017-03-21 12:06:57 +0000 |
commit | 349fe9e201c16d1bc0a96ef7359866bd7430f96b (patch) | |
tree | 34b8a29cde8f1a328fba31696b039503b9126cf5 /src/datavisualization/doc/src/qtdatavisualization-overview.qdoc | |
parent | fb9e66188e0582a6b80ad3b8b3ac80024180a9df (diff) |
Doc: Add an overview of data visualization
Move some information from the front page and the known issues
to the overview. Add some information to the interacting with data
topic.
Change-Id: Ia63e1d46ec48861a144c51f0d8796809ea771ea4
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/datavisualization/doc/src/qtdatavisualization-overview.qdoc')
-rw-r--r-- | src/datavisualization/doc/src/qtdatavisualization-overview.qdoc | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/src/datavisualization/doc/src/qtdatavisualization-overview.qdoc b/src/datavisualization/doc/src/qtdatavisualization-overview.qdoc new file mode 100644 index 00000000..8cb656b1 --- /dev/null +++ b/src/datavisualization/doc/src/qtdatavisualization-overview.qdoc @@ -0,0 +1,250 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Data Visualization module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \title Qt Data Visualization Overview + \page qtdatavisualization-overview.html + \brief An overview of the Qt Data Visualization module. + + The Qt Data Visualization module provides a way to develop rapidly + responding, complex, and dynamic 3D visualization for analytical demanding + industries such as academic research and medical. Qt 3D Data Visualization + provides 3D bars, scatter, and surface visualizations. Combining user + interaction and real time 3D drawing visualizations enables creating user + interfaces that use space effectively. Changing between 3D and 2D + presentation enables truly utilizing the value of 3D in visualizing data. + + The look and feel of the graphs can be customized by using the predefined + themes or defining new ones. In addition, scenes can be customized by + specifying settings for the camera, and individual items can be customized + by using predefined or user-defined meshes. + + Qt Data Visualization offers ready-made data proxies that can be used to + visualize data from Qt item models and height maps. Each graph type has a + basic proxy type, which accepts data in a format suitable for that + visualization. For more information, see \l{Qt Data Visualization Data + Handling}. + + End users can interact with the data presented by graphs in several ways, + including rotating graphs, zooming into and out of data, selecting items, + and viewing 2D slices of the 3D data for increased readability. For more + information, see \l{Qt Data Visualization Interacting with Data}. + + \section1 Graph Types + + The Qt Data Visualization module provides the following 3D graph types: + + \list + \li \l{3D Bar Graphs}{3D bar graphs} + \li \l{3D Scatter Graphs}{3D scatter graphs} + \li \l{3D Surface Graphs}{3D surface graphs} + \endlist + + The QAbstract3DGraph class subclasses a QWindow and provides a render loop + for its own subclasses that implement the different graph types: Q3DBars, + Q3DScatter, and Q3DSurface. The graph type determines how the data is + presented. + + \section2 3D Bar Graphs + + 3D bar graphs present data as 3D bars that are grouped by category. The + Q3DBars class is used to create a graph and the QBar3DSeries and + QBarDataProxy classes are used to set data to the graph, as well as to + control the visual properties of the graph, such as draw mode and shading. + In QML, the corresponding types are Bars3D, Bar3DSeries, and BarDataProxy. + + \image q3dbars-minimal.png + + For more information, see \l{How to construct a minimal Q3DBars graph}, + \l {Bars Example}, and \l {Qt Quick 2 Bars Example}. + + \section2 3D Scatter Graphs + + 3D scatter graphs present data as a collection of points. The Q3DScatter + class is used to create a graph and the QScatter3DSeries and + QScatterDataProxy classes are used to set data to the graph, as well as to + control the visual properties of the graph. In QML, the corresponding types + are Scatter3D, Scatter3DSeries, and ScatterDataProxy. + + \image q3dscatter-minimal.png + + For more information, see \l{How to construct a minimal Q3DScatter graph}, + \l{Scatter Example}, and \l{Qt Quick 2 Scatter Example}. + + \section2 3D Surface Graphs + + 3D surface graphs present data as 3D surface plots. The Q3DSurface class is + used to create a graph and the QSurface3DSeries and QSurfaceDataProxy + classes are used to set data to the graph, as well as to control the visual + properties of the graph. In QML, the corresponding types are Surface3D, + Surface3DSeries, and SurfaceDataProxy. + + \image q3dsurface-minimal.png + + For more information, see \l{How to construct a minimal Q3DSurface graph}, + \l{Surface Example}, \l{Textured Surface Example}, \l{Qt Quick 2 Surface + Example}, and \l{Qt Quick 2 Surface Multiseries Example}. + + \section1 Using OpenGL for Rendering Data + + It is recommended to use OpenGL 2.1 or later for data rendering. + If OpenGL ES2 is used (including Angle builds in Windows), the following + features are not supported: + + \list + \li Shadows + \li Antialiasing + \li Flat shading for surfaces + \li Volumetric objects, because they use 3D textures + \endlist + + Only OpenGL ES2 emulation is available for software renderer (that is, when + using QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL)). + + \section2 Selecting Rendering Mode + + In QML, you can set the \l{AbstractGraph3D::renderingMode} + {AbstractGraph3D.RenderingMode} property to determine whether the graph will + be rendered directly on the window background or to an offscreen surface + that is then drawn during normal QML item rendering. + + Background rendering modes offer slightly better performance than the + indirect rendering mode, at the cost of non-standard QML behavior. For + example, the graphs do not obey the z ordering of QML items and they cannot + be partially transparent. Therefore, changing the rendering mode is a + question of performance versus quality. + + Qt Quick 2 uses a dedicated scenegraph for data rendering, and is therefore + the best choice for data visualization. + + \section1 3D Axes + + Qt Data Visualization supports the following axis types: + + \list + \li Value axis + \li Category axis + \endlist + + An axis can be set up to show a line or a grid. Both axis types are + specializations of the QAbstract3DAxis class or the AbstractAxis3D QML type. + + A value axis can be given a range of values and segment and subsegment + counts to divide the range into. Labels are drawn between each segment. + Grid lines are drawn between each segment and each subsegment. The value + axis is implemented using the QValue3DAxis class or the ValueAxis3D QML type. + + A category axis has named ranges and adjustable range widths. It is divided + into equal-sized categories based on the data window size defined by the + axis range. Labels are drawn to the positions of categories, if provided. + Grid lines are drawn between categories, if visible. A category axis is + implemented using the QCategory3DAxis class or the CategoryAxis3D QML type. + + If no axes are set explicitly for a graph, temporary default axes with no + labels are created. These default axes can be modified via axis accessors, + but as soon as any axis is set explicitly for a particular orientation, the + default axis for that orientation is destroyed. + + All graph types support showing multiple series simultaneously. All the + series do not need to contain the same number of rows and columns. Row and + column labels are taken from the first series added, unless they are + explicitly defined for the row and column axes. + + Axis formatters can be used to customize value axis grid lines and labels. + The QValue3DAxisFormatter class and ValueAxis3DFormatter QML type provide + formatting rules for a linear value 3D axis. The QLogValue3DAxisFormatter + class and the LogValueAxis3DFormatter QML type provide formatting rules for + a logarithmic value 3D axis. + + Polar horizontal axes can be used for surface and scatter graphs by setting + the \l{QAbstract3DGraph::}{polar} property. + + \section1 3D Themes + + A theme is a built-in collection of UI style related settings applied to all + the visual elements of a graph, such as the colors, fonts, and visibility of + the elements, as well as the strenght of the light and ambient light. + + Qt Charts comes with the following predefined themes that can be used as + basis for custom themes: + + \list + \li \e Qt is a light theme with green as the base color. + \li \e {Primary colors} is a light theme with yellow as the base color. + \li \e Digia is a light theme with gray as the base color. + \li \e {Stone moss} is a medium dark theme with yellow as the base + color. + \li \e {Army blue} is a medium light theme with blue as the base color. + \li \e Retro is a medium light theme with brown as the base color. + \li \e Ebony is a dark theme with white as the base color. + \li \e Isabelle is a dark theme with yellow as the base color. + \li \e {User defined} is the default theme that is meant to be + customized. For more information, see \l {Default Theme}. + \endlist + + Custom themes can also be created from scratch. + + If a graph displays the data from several data series, some settings can be + specified separately for each series. For example, different gradients can + be specified for different layers of the graph to make it look more + realistic. For an example, see \l{Qt Quick 2 Surface Multiseries Example}. + + \section1 Customizing 3D Scenes + + A 3D scene is implemented by using the Q3DScene class or the Scene3D QML + type. A scene contains a single active camera, implemented by using the + Q3DCamera class or the Camera3D type, and a single active light source, + implemented by using the Q3DLight class or the Light3D type. The light + source is always positioned in relation to the camera. By default, the light + position follows the camera automatically. + + The camera can be customized by specifying its preset position, rotation, + and zoom level. For an example, see \l{Qt Quick 2 Scatter Example}. + + \section1 Customizing Items + + Qt Data Visualization has predefined mesh types for bars, items, and + surfaces. The mesh type determines how a bar, an item, or a surface looks on + a graph. A user-defined mesh can be specified as a Wavefront OBJ geometry + definition file. For more variety, a quaternion can be set for mesh + rotation. + + In addition to customizing individual items, the QCustom3DItem class or the + Custom3DItem QML type can be used to add custom items to graphs. The items + have a custom mesh, position, scaling, rotation, and an optional texture. + + The QCustom3DVolume class and the Custom3DVolume QML type can be used to + create volume rendered objects to be added to a graph. A volume rendered + object is a box with a 3D texture. Three slice planes are supported for the + volume, one along each main axis of the volume. + + The The QCustom3DLabel class and the Custom3DLabel QML type implement custom + labels with the specified text, font, position, scaling, and rotation. Label + colors, borders, and background are determined by the active theme. +*/ |