Released version 6.1.3
This commit is contained in:
		
				commit
				
					
						a94503cb82
					
				
			
		
					 1885 changed files with 276310 additions and 0 deletions
				
			
		
							
								
								
									
										21
									
								
								examples/friedberg/friedberg.pro
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								examples/friedberg/friedberg.pro
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
################################################################
 | 
			
		||||
# Qwt Widget Library
 | 
			
		||||
# Copyright (C) 1997   Josef Wilgen
 | 
			
		||||
# Copyright (C) 2002   Uwe Rathmann
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the Qwt License, Version 1.0
 | 
			
		||||
################################################################
 | 
			
		||||
 | 
			
		||||
include( $${PWD}/../examples.pri )
 | 
			
		||||
 | 
			
		||||
TARGET       = friedberg
 | 
			
		||||
 | 
			
		||||
HEADERS = \
 | 
			
		||||
    plot.h \
 | 
			
		||||
    friedberg2007.h
 | 
			
		||||
 | 
			
		||||
SOURCES = \
 | 
			
		||||
    friedberg2007.cpp \
 | 
			
		||||
    plot.cpp \
 | 
			
		||||
    main.cpp
 | 
			
		||||
							
								
								
									
										384
									
								
								examples/friedberg/friedberg2007.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										384
									
								
								examples/friedberg/friedberg2007.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,384 @@
 | 
			
		|||
#include "friedberg2007.h"
 | 
			
		||||
 | 
			
		||||
// Temperature 2007 from Friedberg somewhere in Germany
 | 
			
		||||
// See: http://wetter61169.de
 | 
			
		||||
 | 
			
		||||
Temperature friedberg2007[] =
 | 
			
		||||
{
 | 
			
		||||
    /* 01.01 */ Temperature( 2.6, 9.8, 7.07862 ),
 | 
			
		||||
    /* 02.01 */ Temperature( 0.8, 5.8, 3.6993 ),
 | 
			
		||||
    /* 03.01 */ Temperature( 2, 7, 5.02388 ),
 | 
			
		||||
    /* 04.01 */ Temperature( 5.3, 7.8, 6.37778 ),
 | 
			
		||||
    /* 05.01 */ Temperature( 5.6, 7.7, 6.83149 ),
 | 
			
		||||
    /* 06.01 */ Temperature( 7.2, 8.9, 8.0816 ),
 | 
			
		||||
    /* 07.01 */ Temperature( 4.2, 9.9, 7.54704 ),
 | 
			
		||||
    /* 08.01 */ Temperature( 3.5, 8.9, 6.71951 ),
 | 
			
		||||
    /* 09.01 */ Temperature( 8.2, 12.9, 10.8594 ),
 | 
			
		||||
    /* 10.01 */ Temperature( 6.3, 11.9, 9.76424 ),
 | 
			
		||||
    /* 11.01 */ Temperature( 3.9, 9.2, 6.18223 ),
 | 
			
		||||
    /* 12.01 */ Temperature( 6.9, 9.7, 8.44236 ),
 | 
			
		||||
    /* 13.01 */ Temperature( 9, 12.3, 10.6649 ),
 | 
			
		||||
    /* 14.01 */ Temperature( 1.8, 10.8, 7.23438 ),
 | 
			
		||||
    /* 15.01 */ Temperature( -2.8, 1.8, -0.518403 ),
 | 
			
		||||
    /* 16.01 */ Temperature( -0.6, 4.5, 2.39479 ),
 | 
			
		||||
    /* 17.01 */ Temperature( 4.3, 10.2, 7.23472 ),
 | 
			
		||||
    /* 18.01 */ Temperature( 9.1, 13.6, 10.9316 ),
 | 
			
		||||
    /* 19.01 */ Temperature( 6.9, 12.4, 9.4128 ),
 | 
			
		||||
    /* 20.01 */ Temperature( 7.1, 13.3, 10.5083 ),
 | 
			
		||||
    /* 21.01 */ Temperature( 3.5, 9.6, 6.10871 ),
 | 
			
		||||
    /* 22.01 */ Temperature( -1.8, 6, 2.89028 ),
 | 
			
		||||
    /* 23.01 */ Temperature( -5.4, 1.7, -2.46678 ),
 | 
			
		||||
    /* 24.01 */ Temperature( -5.3, -1.3, -3.71483 ),
 | 
			
		||||
    /* 25.01 */ Temperature( -7.5, 3.3, -3.36736 ),
 | 
			
		||||
    /* 26.01 */ Temperature( -11.1, 0.3, -5.50662 ),
 | 
			
		||||
    /* 27.01 */ Temperature( 0.2, 3.2, 1.95345 ),
 | 
			
		||||
    /* 28.01 */ Temperature( 1.9, 5.2, 3.43633 ),
 | 
			
		||||
    /* 29.01 */ Temperature( 4.4, 9.1, 6.24236 ),
 | 
			
		||||
    /* 30.01 */ Temperature( 2.3, 11.5, 6.03114 ),
 | 
			
		||||
    /* 31.01 */ Temperature( 4.6, 10.2, 6.04192 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.02 */ Temperature( 4.8, 13.8, 7.87674 ),
 | 
			
		||||
    /* 02.02 */ Temperature( 5.7, 10, 7.28646 ),
 | 
			
		||||
    /* 03.02 */ Temperature( 2.9, 8.2, 5.71771 ),
 | 
			
		||||
    /* 04.02 */ Temperature( -1.5, 7.2, 4.71319 ),
 | 
			
		||||
    /* 05.02 */ Temperature( -2.6, 4.4, 1.23542 ),
 | 
			
		||||
    /* 06.02 */ Temperature( 0.3, 9.2, 2.59965 ),
 | 
			
		||||
    /* 07.02 */ Temperature( -0.4, 2.4, 0.641667 ),
 | 
			
		||||
    /* 08.02 */ Temperature( -1.7, 3.8, 0.811458 ),
 | 
			
		||||
    /* 09.02 */ Temperature( 0.7, 7, 3.58328 ),
 | 
			
		||||
    /* 10.02 */ Temperature( 1, 6, 3.51181 ),
 | 
			
		||||
    /* 11.02 */ Temperature( 4.7, 9.6, 6.14913 ),
 | 
			
		||||
    /* 12.02 */ Temperature( 5.3, 8.7, 6.80552 ),
 | 
			
		||||
    /* 13.02 */ Temperature( 4.4, 10.3, 6.84552 ),
 | 
			
		||||
    /* 14.02 */ Temperature( 2.6, 6.5, 4.58681 ),
 | 
			
		||||
    /* 15.02 */ Temperature( -0.8, 13.4, 6.38542 ),
 | 
			
		||||
    /* 16.02 */ Temperature( -3, 14.4, 4.11336 ),
 | 
			
		||||
    /* 17.02 */ Temperature( 0.5, 13, 5.87457 ),
 | 
			
		||||
    /* 18.02 */ Temperature( -2.2, 14.1, 4.36528 ),
 | 
			
		||||
    /* 19.02 */ Temperature( 3.9, 5.6, 4.63737 ),
 | 
			
		||||
    /* 20.02 */ Temperature( -0.4, 9.2, 4.37014 ),
 | 
			
		||||
    /* 21.02 */ Temperature( -1.9, 5.5, 1.85675 ),
 | 
			
		||||
    /* 22.02 */ Temperature( 1, 13.1, 5.41176 ),
 | 
			
		||||
    /* 23.02 */ Temperature( 1.9, 13.9, 7.74251 ),
 | 
			
		||||
    /* 24.02 */ Temperature( 3.8, 9.6, 7.19306 ),
 | 
			
		||||
    /* 25.02 */ Temperature( 5.8, 10.8, 7.80312 ),
 | 
			
		||||
    /* 26.02 */ Temperature( 5.2, 10.4, 6.79481 ),
 | 
			
		||||
    /* 27.02 */ Temperature( 3.2, 7.4, 5.22986 ),
 | 
			
		||||
    /* 28.02 */ Temperature( 6.4, 13.4, 9.13356 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.03 */ Temperature( 4.6, 11.4, 7.70554 ),
 | 
			
		||||
    /* 02.03 */ Temperature( 3.4, 10.9, 5.98408 ),
 | 
			
		||||
    /* 03.03 */ Temperature( 2.9, 10.5, 5.45675 ),
 | 
			
		||||
    /* 04.03 */ Temperature( -0.7, 16.8, 7.29585 ),
 | 
			
		||||
    /* 05.03 */ Temperature( 4.2, 13.4, 8.35862 ),
 | 
			
		||||
    /* 06.03 */ Temperature( 3, 13, 7.76644 ),
 | 
			
		||||
    /* 07.03 */ Temperature( 2, 13.3, 8.24618 ),
 | 
			
		||||
    /* 08.03 */ Temperature( -0.8, 15, 6.11765 ),
 | 
			
		||||
    /* 09.03 */ Temperature( -0.7, 11, 5.7568 ),
 | 
			
		||||
    /* 10.03 */ Temperature( 1.2, 14.4, 6.61389 ),
 | 
			
		||||
    /* 11.03 */ Temperature( -1.7, 18, 6.66146 ),
 | 
			
		||||
    /* 12.03 */ Temperature( -0.6, 21.9, 8.9816 ),
 | 
			
		||||
    /* 13.03 */ Temperature( -0.9, 19.6, 9.08299 ),
 | 
			
		||||
    /* 14.03 */ Temperature( 5.3, 18.9, 10.5562 ),
 | 
			
		||||
    /* 15.03 */ Temperature( 2, 20.5, 9.65156 ),
 | 
			
		||||
    /* 16.03 */ Temperature( 0.2, 16.7, 7.8699 ),
 | 
			
		||||
    /* 17.03 */ Temperature( 4.5, 10.6, 7.87535 ),
 | 
			
		||||
    /* 18.03 */ Temperature( 2.7, 9.7, 6.71806 ),
 | 
			
		||||
    /* 19.03 */ Temperature( 0.4, 10.9, 3.92404 ),
 | 
			
		||||
    /* 20.03 */ Temperature( -2, 12.7, 4.01359 ),
 | 
			
		||||
    /* 21.03 */ Temperature( 0.3, 6.8, 3.00382 ),
 | 
			
		||||
    /* 22.03 */ Temperature( 0.9, 4.2, 2.2816 ),
 | 
			
		||||
    /* 23.03 */ Temperature( 2, 5.7, 3.39233 ),
 | 
			
		||||
    /* 24.03 */ Temperature( 3.9, 9.3, 6.41076 ),
 | 
			
		||||
    /* 25.03 */ Temperature( 4.2, 19.1, 9.92182 ),
 | 
			
		||||
    /* 26.03 */ Temperature( 2.3, 22, 12.5716 ),
 | 
			
		||||
    /* 27.03 */ Temperature( 4.9, 20.6, 13.4568 ),
 | 
			
		||||
    /* 28.03 */ Temperature( 0.3, 22.8, 10.755 ),
 | 
			
		||||
    /* 29.03 */ Temperature( 1.8, 17.2, 9.43924 ),
 | 
			
		||||
    /* 30.03 */ Temperature( 1.9, 19.8, 10.25 ),
 | 
			
		||||
    /* 31.03 */ Temperature( 6.7, 17, 11.1324 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.04 */ Temperature( 5.7, 22, 12.8457 ),
 | 
			
		||||
    /* 02.04 */ Temperature( 6.4, 22.1, 13.3847 ),
 | 
			
		||||
    /* 03.04 */ Temperature( 5.8, 17.5, 10.5614 ),
 | 
			
		||||
    /* 04.04 */ Temperature( 2.8, 16.2, 8.06574 ),
 | 
			
		||||
    /* 05.04 */ Temperature( -0.6, 20.8, 9.18062 ),
 | 
			
		||||
    /* 06.04 */ Temperature( 2.1, 24, 13.0069 ),
 | 
			
		||||
    /* 07.04 */ Temperature( 5.3, 16.2, 10.2771 ),
 | 
			
		||||
    /* 08.04 */ Temperature( 0.1, 20.7, 9.79861 ),
 | 
			
		||||
    /* 09.04 */ Temperature( 0.3, 18.9, 10.0087 ),
 | 
			
		||||
    /* 10.04 */ Temperature( 4, 16.4, 11.4208 ),
 | 
			
		||||
    /* 11.04 */ Temperature( 2.3, 23.4, 13.083 ),
 | 
			
		||||
    /* 12.04 */ Temperature( 7, 29.4, 16.5826 ),
 | 
			
		||||
    /* 13.04 */ Temperature( 10.6, 31.5, 19.2249 ),
 | 
			
		||||
    /* 14.04 */ Temperature( 11.8, 34, 21.441 ),
 | 
			
		||||
    /* 15.04 */ Temperature( 11.6, 33.8, 21.0201 ),
 | 
			
		||||
    /* 16.04 */ Temperature( 8.7, 31.1, 18.7885 ),
 | 
			
		||||
    /* 17.04 */ Temperature( 5.5, 27.2, 16.1432 ),
 | 
			
		||||
    /* 18.04 */ Temperature( 6.1, 17.2, 10.6688 ),
 | 
			
		||||
    /* 19.04 */ Temperature( -0.6, 21.3, 10.4806 ),
 | 
			
		||||
    /* 20.04 */ Temperature( 5.9, 21.6, 12.6257 ),
 | 
			
		||||
    /* 21.04 */ Temperature( 2.1, 21.6, 11.0858 ),
 | 
			
		||||
    /* 22.04 */ Temperature( 3.9, 25.9, 14.2108 ),
 | 
			
		||||
    /* 23.04 */ Temperature( 3.1, 27.8, 15.7111 ),
 | 
			
		||||
    /* 24.04 */ Temperature( 13.7, 29, 19.6397 ),
 | 
			
		||||
    /* 25.04 */ Temperature( 9.8, 31.6, 19.601 ),
 | 
			
		||||
    /* 26.04 */ Temperature( 8.2, 32.4, 20.0389 ),
 | 
			
		||||
    /* 27.04 */ Temperature( 11.8, 32.1, 21.0726 ),
 | 
			
		||||
    /* 28.04 */ Temperature( 12.6, 33.3, 21.6993 ),
 | 
			
		||||
    /* 29.04 */ Temperature( 10.5, 27.4, 19.1206 ),
 | 
			
		||||
    /* 30.04 */ Temperature( 5.3, 26.4, 15.0972 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.05 */ Temperature( 6.9, 25.3, 15.2802 ),
 | 
			
		||||
    /* 02.05 */ Temperature( 4.3, 26.2, 14.8401 ),
 | 
			
		||||
    /* 03.05 */ Temperature( 7.1, 28.5, 17.2145 ),
 | 
			
		||||
    /* 04.05 */ Temperature( 11, 28.5, 18.537 ),
 | 
			
		||||
    /* 05.05 */ Temperature( 12, 28, 18.1672 ),
 | 
			
		||||
    /* 06.05 */ Temperature( 10.4, 29, 18.3844 ),
 | 
			
		||||
    /* 07.05 */ Temperature( 13, 18.1, 15.0028 ),
 | 
			
		||||
    /* 08.05 */ Temperature( 10.7, 18.3, 13.2014 ),
 | 
			
		||||
    /* 09.05 */ Temperature( 10.8, 14.4, 12.5208 ),
 | 
			
		||||
    /* 10.05 */ Temperature( 11.9, 23.5, 16.9632 ),
 | 
			
		||||
    /* 11.05 */ Temperature( 9.8, 16.9, 15.0795 ),
 | 
			
		||||
    /* 12.05 */ Temperature( 9.2, 19.6, 13.8521 ),
 | 
			
		||||
    /* 13.05 */ Temperature( 8.9, 26.3, 16.2028 ),
 | 
			
		||||
    /* 14.05 */ Temperature( 11.1, 17.5, 13.2934 ),
 | 
			
		||||
    /* 15.05 */ Temperature( 6.5, 17, 11.7743 ),
 | 
			
		||||
    /* 16.05 */ Temperature( 4.9, 13.6, 9.75625 ),
 | 
			
		||||
    /* 17.05 */ Temperature( 6.8, 16.6, 9.96701 ),
 | 
			
		||||
    /* 18.05 */ Temperature( 2.4, 21.2, 11.4311 ),
 | 
			
		||||
    /* 19.05 */ Temperature( 8.2, 24.4, 15.4188 ),
 | 
			
		||||
    /* 20.05 */ Temperature( 14.1, 31.7, 21.3303 ),
 | 
			
		||||
    /* 21.05 */ Temperature( 11, 30.9, 21.5359 ),
 | 
			
		||||
    /* 22.05 */ Temperature( 13.8, 31, 21.5177 ),
 | 
			
		||||
    /* 23.05 */ Temperature( 16, 27.8, 21.0271 ),
 | 
			
		||||
    /* 24.05 */ Temperature( 15, 34, 23.4142 ),
 | 
			
		||||
    /* 25.05 */ Temperature( 14.3, 31.8, 22.8903 ),
 | 
			
		||||
    /* 26.05 */ Temperature( 13.6, 33.1, 22.6156 ),
 | 
			
		||||
    /* 27.05 */ Temperature( 11.2, 23.4, 16.6192 ),
 | 
			
		||||
    /* 28.05 */ Temperature( 9.6, 13.1, 11.3222 ),
 | 
			
		||||
    /* 29.05 */ Temperature( 8.3, 11.2, 10.3529 ),
 | 
			
		||||
    /* 30.05 */ Temperature( 4.2, 20.8, 12.6218 ),
 | 
			
		||||
    /* 31.05 */ Temperature( 9.2, 23.6, 15.1073 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.06 */ Temperature( 10.8, 24.4, 16.3205 ),
 | 
			
		||||
    /* 02.06 */ Temperature( 13, 26.5, 18.9649 ),
 | 
			
		||||
    /* 03.06 */ Temperature( 14, 25.1, 18.5398 ),
 | 
			
		||||
    /* 04.06 */ Temperature( 13, 28, 20.2139 ),
 | 
			
		||||
    /* 05.06 */ Temperature( 14, 28.8, 20.438 ),
 | 
			
		||||
    /* 06.06 */ Temperature( 14, 30.4, 21.7821 ),
 | 
			
		||||
    /* 07.06 */ Temperature( 17, 34.8, 25.3087 ),
 | 
			
		||||
    /* 08.06 */ Temperature( 17.9, 35.7, 25.7872 ),
 | 
			
		||||
    /* 09.06 */ Temperature( 17.8, 31.6, 22.0788 ),
 | 
			
		||||
    /* 10.06 */ Temperature( 15.5, 33.4, 22.4458 ),
 | 
			
		||||
    /* 11.06 */ Temperature( 16.6, 28.3, 19.8797 ),
 | 
			
		||||
    /* 12.06 */ Temperature( 14, 27.3, 20.2566 ),
 | 
			
		||||
    /* 13.06 */ Temperature( 13.2, 28.2, 19.4233 ),
 | 
			
		||||
    /* 14.06 */ Temperature( 12.7, 30, 20.1427 ),
 | 
			
		||||
    /* 15.06 */ Temperature( 15.2, 22.6, 18.5917 ),
 | 
			
		||||
    /* 16.06 */ Temperature( 13.2, 24, 17.7014 ),
 | 
			
		||||
    /* 17.06 */ Temperature( 11.7, 27.9, 19.8229 ),
 | 
			
		||||
    /* 18.06 */ Temperature( 15.9, 27.2, 20.3358 ),
 | 
			
		||||
    /* 19.06 */ Temperature( 12.6, 33.7, 22.2427 ),
 | 
			
		||||
    /* 20.06 */ Temperature( 15.7, 30.8, 23.7507 ),
 | 
			
		||||
    /* 21.06 */ Temperature( 14.8, 22.6, 18.2538 ),
 | 
			
		||||
    /* 22.06 */ Temperature( 12.4, 21.3, 15.9969 ),
 | 
			
		||||
    /* 23.06 */ Temperature( 12.6, 21.6, 15.8149 ),
 | 
			
		||||
    /* 24.06 */ Temperature( 13, 26, 18.4176 ),
 | 
			
		||||
    /* 25.06 */ Temperature( 12.9, 24.4, 17.1299 ),
 | 
			
		||||
    /* 26.06 */ Temperature( 10.8, 18.8, 13.2913 ),
 | 
			
		||||
    /* 27.06 */ Temperature( 9.9, 18.8, 13.5465 ),
 | 
			
		||||
    /* 28.06 */ Temperature( 12, 19.8, 14.8434 ),
 | 
			
		||||
    /* 29.06 */ Temperature( 12, 19, 15.155 ),
 | 
			
		||||
    /* 30.06 */ Temperature( 12.4, 22.4, 17.1354 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.07 */ Temperature( 12.1, 24.9, 19.1639 ),
 | 
			
		||||
    /* 02.07 */ Temperature( 15.7, 24.3, 18.4554 ),
 | 
			
		||||
    /* 03.07 */ Temperature( 12.7, 17.2, 14.6564 ),
 | 
			
		||||
    /* 04.07 */ Temperature( 11.2, 19, 13.9529 ),
 | 
			
		||||
    /* 05.07 */ Temperature( 11.5, 19, 14.6422 ),
 | 
			
		||||
    /* 06.07 */ Temperature( 12.4, 22, 16.6146 ),
 | 
			
		||||
    /* 07.07 */ Temperature( 11.6, 24, 17.666 ),
 | 
			
		||||
    /* 08.07 */ Temperature( 9, 28, 19.1351 ),
 | 
			
		||||
    /* 09.07 */ Temperature( 11.3, 21.5, 16.5271 ),
 | 
			
		||||
    /* 10.07 */ Temperature( 11.3, 20.2, 14.2326 ),
 | 
			
		||||
    /* 11.07 */ Temperature( 10.2, 19.2, 14.0649 ),
 | 
			
		||||
    /* 12.07 */ Temperature( 13.2, 23.1, 16.6346 ),
 | 
			
		||||
    /* 13.07 */ Temperature( 15, 27, 19.6844 ),
 | 
			
		||||
    /* 14.07 */ Temperature( 13.4, 32.4, 23.845 ),
 | 
			
		||||
    /* 15.07 */ Temperature( 15, 38.2, 26.8559 ),
 | 
			
		||||
    /* 16.07 */ Temperature( 16.1, 36.5, 26.4483 ),
 | 
			
		||||
    /* 17.07 */ Temperature( 19.7, 30.5, 24.189 ),
 | 
			
		||||
    /* 18.07 */ Temperature( 14.2, 29.3, 22.1363 ),
 | 
			
		||||
    /* 19.07 */ Temperature( 16.4, 25.9, 19.0819 ),
 | 
			
		||||
    /* 20.07 */ Temperature( 16.2, 30.8, 22.151 ),
 | 
			
		||||
    /* 21.07 */ Temperature( 14, 24.3, 18.6573 ),
 | 
			
		||||
    /* 22.07 */ Temperature( 13.2, 24.5, 18.3301 ),
 | 
			
		||||
    /* 23.07 */ Temperature( 10.6, 23.4, 16.6903 ),
 | 
			
		||||
    /* 24.07 */ Temperature( 13.2, 20.8, 16.2743 ),
 | 
			
		||||
    /* 25.07 */ Temperature( 12.2, 25.8, 18.8267 ),
 | 
			
		||||
    /* 26.07 */ Temperature( 11.9, 28.9, 20.5522 ),
 | 
			
		||||
    /* 27.07 */ Temperature( 17.6, 25.8, 21.5691 ),
 | 
			
		||||
    /* 28.07 */ Temperature( 16.6, 24.6, 19.2295 ),
 | 
			
		||||
    /* 29.07 */ Temperature( 13, 19, 15.9021 ),
 | 
			
		||||
    /* 30.07 */ Temperature( 9.6, 19.7, 13.875 ),
 | 
			
		||||
    /* 31.07 */ Temperature( 8, 22, 14.5284 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.08 */ Temperature( 7.6, 27.5, 17.5684 ),
 | 
			
		||||
    /* 02.08 */ Temperature( 9.2, 22.2, 16.1035 ),
 | 
			
		||||
    /* 03.08 */ Temperature( 12.7, 25.3, 18.2958 ),
 | 
			
		||||
    /* 04.08 */ Temperature( 8.6, 31.3, 19.7941 ),
 | 
			
		||||
    /* 05.08 */ Temperature( 10.3, 32.7, 21.492 ),
 | 
			
		||||
    /* 06.08 */ Temperature( 10, 33.4, 22.4431 ),
 | 
			
		||||
    /* 07.08 */ Temperature( 16.8, 22.6, 19.5583 ),
 | 
			
		||||
    /* 08.08 */ Temperature( 13.5, 16.7, 15.0264 ),
 | 
			
		||||
    /* 09.08 */ Temperature( 13.2, 18.8, 15.6003 ),
 | 
			
		||||
    /* 10.08 */ Temperature( 14.6, 27.9, 18.8292 ),
 | 
			
		||||
    /* 11.08 */ Temperature( 16.3, 26.4, 20.3837 ),
 | 
			
		||||
    /* 12.08 */ Temperature( 12.1, 28.7, 19.9892 ),
 | 
			
		||||
    /* 13.08 */ Temperature( 15, 27.4, 19.7542 ),
 | 
			
		||||
    /* 14.08 */ Temperature( 11.3, 28.3, 20.5656 ),
 | 
			
		||||
    /* 15.08 */ Temperature( 18.6, 28.4, 23.1215 ),
 | 
			
		||||
    /* 16.08 */ Temperature( 16, 23.6, 19.491 ),
 | 
			
		||||
    /* 17.08 */ Temperature( 12.6, 22, 17.0437 ),
 | 
			
		||||
    /* 18.08 */ Temperature( 8.5, 25.7, 16.5589 ),
 | 
			
		||||
    /* 19.08 */ Temperature( 13.4, 25.8, 18.0543 ),
 | 
			
		||||
    /* 20.08 */ Temperature( 10.9, 21.5, 16.1306 ),
 | 
			
		||||
    /* 21.08 */ Temperature( 10.6, 19.2, 14.6177 ),
 | 
			
		||||
    /* 22.08 */ Temperature( 14, 24.6, 17.3841 ),
 | 
			
		||||
    /* 23.08 */ Temperature( 13.8, 30.4, 20.6125 ),
 | 
			
		||||
    /* 24.08 */ Temperature( 12.3, 30.3, 20.7622 ),
 | 
			
		||||
    /* 25.08 */ Temperature( 12.8, 30.2, 21.6736 ),
 | 
			
		||||
    /* 26.08 */ Temperature( 15, 29.3, 21.266 ),
 | 
			
		||||
    /* 27.08 */ Temperature( 12.9, 25.9, 18.791 ),
 | 
			
		||||
    /* 28.08 */ Temperature( 9.3, 24.6, 16.2833 ),
 | 
			
		||||
    /* 29.08 */ Temperature( 10.8, 25, 16.8459 ),
 | 
			
		||||
    /* 30.08 */ Temperature( 8.2, 24.4, 15.9267 ),
 | 
			
		||||
    /* 31.08 */ Temperature( 14.1, 20.5, 16.6128 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.09 */ Temperature( 13.4, 21.9, 16.2205 ),
 | 
			
		||||
    /* 02.09 */ Temperature( 12, 20.7, 16.0882 ),
 | 
			
		||||
    /* 03.09 */ Temperature( 10.8, 21.3, 14.7913 ),
 | 
			
		||||
    /* 04.09 */ Temperature( 7.8, 18.2, 12.2747 ),
 | 
			
		||||
    /* 05.09 */ Temperature( 8.1, 22.2, 12.9406 ),
 | 
			
		||||
    /* 06.09 */ Temperature( 10, 23.8, 13.8785 ),
 | 
			
		||||
    /* 07.09 */ Temperature( 10.7, 21.2, 15.4823 ),
 | 
			
		||||
    /* 08.09 */ Temperature( 12.4, 21, 15.8194 ),
 | 
			
		||||
    /* 09.09 */ Temperature( 12.7, 16.9, 14.7212 ),
 | 
			
		||||
    /* 10.09 */ Temperature( 10.3, 17.7, 12.9271 ),
 | 
			
		||||
    /* 11.09 */ Temperature( 10.6, 20.8, 14.4788 ),
 | 
			
		||||
    /* 12.09 */ Temperature( 10.8, 21.9, 15.0184 ),
 | 
			
		||||
    /* 13.09 */ Temperature( 6.9, 24.6, 14.5222 ),
 | 
			
		||||
    /* 14.09 */ Temperature( 8.1, 24, 15.6583 ),
 | 
			
		||||
    /* 15.09 */ Temperature( 8.8, 22.8, 15.941 ),
 | 
			
		||||
    /* 16.09 */ Temperature( 3.1, 24.5, 14.1486 ),
 | 
			
		||||
    /* 17.09 */ Temperature( 12.4, 21.2, 16.0497 ),
 | 
			
		||||
    /* 18.09 */ Temperature( 7.8, 16.1, 12.024 ),
 | 
			
		||||
    /* 19.09 */ Temperature( 5.3, 18.1, 10.3003 ),
 | 
			
		||||
    /* 20.09 */ Temperature( 6.4, 20.3, 12.3177 ),
 | 
			
		||||
    /* 21.09 */ Temperature( 6, 23.8, 13.6247 ),
 | 
			
		||||
    /* 22.09 */ Temperature( 5.7, 27, 14.6847 ),
 | 
			
		||||
    /* 23.09 */ Temperature( 7.8, 28, 16.6238 ),
 | 
			
		||||
    /* 24.09 */ Temperature( 9.6, 24.9, 16.7191 ),
 | 
			
		||||
    /* 25.09 */ Temperature( 8.4, 17.6, 12.636 ),
 | 
			
		||||
    /* 26.09 */ Temperature( 4.3, 18.9, 10.0809 ),
 | 
			
		||||
    /* 27.09 */ Temperature( 9.4, 11.2, 10.3344 ),
 | 
			
		||||
    /* 28.09 */ Temperature( 7.7, 12.6, 10.5337 ),
 | 
			
		||||
    /* 29.09 */ Temperature( 9.8, 15.3, 11.9306 ),
 | 
			
		||||
    /* 30.09 */ Temperature( 9.6, 21.1, 13.6635 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.10 */ Temperature( 8.9, 24.5, 14.8163 ),
 | 
			
		||||
    /* 02.10 */ Temperature( 13.5, 20.2, 16.1628 ),
 | 
			
		||||
    /* 03.10 */ Temperature( 12.5, 18, 15.4691 ),
 | 
			
		||||
    /* 04.10 */ Temperature( 13.8, 25, 17.2073 ),
 | 
			
		||||
    /* 05.10 */ Temperature( 9.1, 23.2, 14.6181 ),
 | 
			
		||||
    /* 06.10 */ Temperature( 6.4, 23.4, 12.8625 ),
 | 
			
		||||
    /* 07.10 */ Temperature( 4.6, 22.1, 11.0052 ),
 | 
			
		||||
    /* 08.10 */ Temperature( 2, 22.2, 10.1677 ),
 | 
			
		||||
    /* 09.10 */ Temperature( 7.8, 21.6, 12.2139 ),
 | 
			
		||||
    /* 10.10 */ Temperature( 7.1, 22.7, 13.0115 ),
 | 
			
		||||
    /* 11.10 */ Temperature( 6.1, 21.2, 11.4333 ),
 | 
			
		||||
    /* 12.10 */ Temperature( 4.3, 15.2, 10.6104 ),
 | 
			
		||||
    /* 13.10 */ Temperature( 5.8, 23, 12.8875 ),
 | 
			
		||||
    /* 14.10 */ Temperature( 1, 23, 9.72986 ),
 | 
			
		||||
    /* 15.10 */ Temperature( 1, 19.3, 9.33021 ),
 | 
			
		||||
    /* 16.10 */ Temperature( 8.5, 20.4, 13.2639 ),
 | 
			
		||||
    /* 17.10 */ Temperature( 6.8, 17.3, 11.8174 ),
 | 
			
		||||
    /* 18.10 */ Temperature( 5.2, 15.6, 9.06076 ),
 | 
			
		||||
    /* 19.10 */ Temperature( 2.7, 13.5, 7.1309 ),
 | 
			
		||||
    /* 20.10 */ Temperature( -0.2, 15.8, 6.01667 ),
 | 
			
		||||
    /* 21.10 */ Temperature( 2.6, 6.1, 4.9441 ),
 | 
			
		||||
    /* 22.10 */ Temperature( -0.8, 13.2, 4.50694 ),
 | 
			
		||||
    /* 23.10 */ Temperature( -0.4, 13.3, 4.71007 ),
 | 
			
		||||
    /* 24.10 */ Temperature( 2.9, 8.1, 5.96979 ),
 | 
			
		||||
    /* 25.10 */ Temperature( 6.3, 10.5, 8.01206 ),
 | 
			
		||||
    /* 26.10 */ Temperature( 7, 10.8, 8.14965 ),
 | 
			
		||||
    /* 27.10 */ Temperature( 6.6, 9.7, 7.7809 ),
 | 
			
		||||
    /* 28.10 */ Temperature( 1.7, 10.8, 6.95728 ),
 | 
			
		||||
    /* 29.10 */ Temperature( 2.2, 9.9, 6.62917 ),
 | 
			
		||||
    /* 30.10 */ Temperature( 5.8, 15, 8.76181 ),
 | 
			
		||||
    /* 31.10 */ Temperature( 0.7, 15, 6.01528 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.11 */ Temperature( -0.2, 9.7, 3.75842 ),
 | 
			
		||||
    /* 02.11 */ Temperature( 6.4, 9.6, 8.00138 ),
 | 
			
		||||
    /* 03.11 */ Temperature( 8.7, 13.1, 10.5676 ),
 | 
			
		||||
    /* 04.11 */ Temperature( 8, 11.8, 9.54306 ),
 | 
			
		||||
    /* 05.11 */ Temperature( 5.8, 15.9, 8.52345 ),
 | 
			
		||||
    /* 06.11 */ Temperature( 5.5, 10.8, 7.16493 ),
 | 
			
		||||
    /* 07.11 */ Temperature( 5.5, 8.9, 7.30172 ),
 | 
			
		||||
    /* 08.11 */ Temperature( 7, 11.7, 8.96701 ),
 | 
			
		||||
    /* 09.11 */ Temperature( 2.5, 8.4, 4.86528 ),
 | 
			
		||||
    /* 10.11 */ Temperature( 3.7, 9, 5.20828 ),
 | 
			
		||||
    /* 11.11 */ Temperature( 2.8, 10.6, 6.80756 ),
 | 
			
		||||
    /* 12.11 */ Temperature( 2.7, 9.5, 5.07647 ),
 | 
			
		||||
    /* 13.11 */ Temperature( 0.1, 5.4, 3.3945 ),
 | 
			
		||||
    /* 14.11 */ Temperature( -0.7, 7.9, 2.02234 ),
 | 
			
		||||
    /* 15.11 */ Temperature( -1.8, 6.5, 1.07778 ),
 | 
			
		||||
    /* 16.11 */ Temperature( -4.4, 5.1, -0.693772 ),
 | 
			
		||||
    /* 17.11 */ Temperature( -0.3, 3.4, 1.33229 ),
 | 
			
		||||
    /* 18.11 */ Temperature( -0.4, 4.3, 2.4622 ),
 | 
			
		||||
    /* 19.11 */ Temperature( 1.8, 3.6, 2.78282 ),
 | 
			
		||||
    /* 20.11 */ Temperature( 1.3, 5.6, 2.95979 ),
 | 
			
		||||
    /* 21.11 */ Temperature( 1.6, 5.7, 3.62284 ),
 | 
			
		||||
    /* 22.11 */ Temperature( 3.1, 7.3, 5.60277 ),
 | 
			
		||||
    /* 23.11 */ Temperature( 4.2, 7.7, 6.28166 ),
 | 
			
		||||
    /* 24.11 */ Temperature( -0.5, 11.5, 3.25931 ),
 | 
			
		||||
    /* 25.11 */ Temperature( -1, 8.8, 2.86505 ),
 | 
			
		||||
    /* 26.11 */ Temperature( 1.2, 6.8, 3.09414 ),
 | 
			
		||||
    /* 27.11 */ Temperature( -0.8, 7.5, 3.17805 ),
 | 
			
		||||
    /* 28.11 */ Temperature( -2.8, 3.1, -0.920139 ),
 | 
			
		||||
    /* 29.11 */ Temperature( -2.6, 1.7, -0.491696 ),
 | 
			
		||||
    /* 30.11 */ Temperature( 1.3, 6.5, 3.85 ),
 | 
			
		||||
 | 
			
		||||
    /* 01.12 */ Temperature( 4.1, 8.7, 5.88924 ),
 | 
			
		||||
    /* 02.12 */ Temperature( 4.8, 9, 6.81667 ),
 | 
			
		||||
    /* 03.12 */ Temperature( 3.5, 8.5, 6.23633 ),
 | 
			
		||||
    /* 04.12 */ Temperature( 2.7, 6.6, 4.63045 ),
 | 
			
		||||
    /* 05.12 */ Temperature( 4.3, 8.6, 6.85993 ),
 | 
			
		||||
    /* 06.12 */ Temperature( 5.5, 9.3, 7.79201 ),
 | 
			
		||||
    /* 07.12 */ Temperature( 3.1, 13.4, 8.79444 ),
 | 
			
		||||
    /* 08.12 */ Temperature( 2.6, 6.3, 4.67093 ),
 | 
			
		||||
    /* 09.12 */ Temperature( 3, 10.4, 5.75724 ),
 | 
			
		||||
    /* 10.12 */ Temperature( 4.1, 6.8, 5.31834 ),
 | 
			
		||||
    /* 11.12 */ Temperature( 4.1, 7.4, 5.28993 ),
 | 
			
		||||
    /* 12.12 */ Temperature( 3.9, 6.4, 4.64479 ),
 | 
			
		||||
    /* 13.12 */ Temperature( 1.7, 9.1, 4.15363 ),
 | 
			
		||||
    /* 14.12 */ Temperature( 0.4, 1.8, 0.934602 ),
 | 
			
		||||
    /* 15.12 */ Temperature( -4.5, 2.1, -1.17292 ),
 | 
			
		||||
    /* 16.12 */ Temperature( -5, 4.8, -2.17431 ),
 | 
			
		||||
    /* 17.12 */ Temperature( -5.6, 6.1, -1.35448 ),
 | 
			
		||||
    /* 18.12 */ Temperature( -4.9, 6.4, -1.25502 ),
 | 
			
		||||
    /* 19.12 */ Temperature( -4.4, 6.6, -1.02396 ),
 | 
			
		||||
    /* 20.12 */ Temperature( -7.3, 5.2, -2.63854 ),
 | 
			
		||||
    /* 21.12 */ Temperature( -8.5, 5.7, -3.58333 ),
 | 
			
		||||
    /* 22.12 */ Temperature( -7.9, -5.3, -6.13438 ),
 | 
			
		||||
    /* 23.12 */ Temperature( -6.1, -4.4, -5.23472 ),
 | 
			
		||||
    /* 24.12 */ Temperature( -4.6, -3.3, -3.84291 ),
 | 
			
		||||
    /* 25.12 */ Temperature( -4.9, -2.8, -3.9066 ),
 | 
			
		||||
    /* 26.12 */ Temperature( -4.7, -1.9, -3.10379 ),
 | 
			
		||||
    /* 27.12 */ Temperature( -1.9, -0.2, -0.679791 ),
 | 
			
		||||
    /* 28.12 */ Temperature( -1.8, 0.5, -0.521875 ),
 | 
			
		||||
    /* 29.12 */ Temperature( -2.2, 2.3, -0.430796 ),
 | 
			
		||||
    /* 30.12 */ Temperature( 0.9, 5.2, 2.83437 ),
 | 
			
		||||
    /* 31.12 */ Temperature( -1, 8.3, 2.27093 )
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										28
									
								
								examples/friedberg/friedberg2007.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								examples/friedberg/friedberg2007.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
#ifndef _FRIEDBERG_2007_H_
 | 
			
		||||
#define _FRIEDBERG_2007_H_
 | 
			
		||||
 | 
			
		||||
class Temperature
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    Temperature():
 | 
			
		||||
        minValue( 0.0 ),
 | 
			
		||||
        maxValue( 0.0 ),
 | 
			
		||||
        averageValue( 0.0 )
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Temperature( double min, double max, double average ):
 | 
			
		||||
        minValue( min ),
 | 
			
		||||
        maxValue( max ),
 | 
			
		||||
        averageValue( average )
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    double minValue;
 | 
			
		||||
    double maxValue;
 | 
			
		||||
    double averageValue;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern Temperature friedberg2007[];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										55
									
								
								examples/friedberg/main.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								examples/friedberg/main.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
#include <qapplication.h>
 | 
			
		||||
#include <qmainwindow.h>
 | 
			
		||||
#include <qcombobox.h>
 | 
			
		||||
#include <qtoolbar.h>
 | 
			
		||||
#include <qtoolbutton.h>
 | 
			
		||||
#include "plot.h"
 | 
			
		||||
 | 
			
		||||
class MainWindow: public QMainWindow
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    MainWindow( QWidget * = NULL );
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Plot *d_plot;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
MainWindow::MainWindow( QWidget *parent ):
 | 
			
		||||
    QMainWindow( parent )
 | 
			
		||||
{
 | 
			
		||||
    d_plot = new Plot( this );
 | 
			
		||||
    setCentralWidget( d_plot );
 | 
			
		||||
 | 
			
		||||
    QToolBar *toolBar = new QToolBar( this );
 | 
			
		||||
 | 
			
		||||
    QComboBox *typeBox = new QComboBox( toolBar );
 | 
			
		||||
    typeBox->addItem( "Bars" );
 | 
			
		||||
    typeBox->addItem( "Tube" );
 | 
			
		||||
    typeBox->setCurrentIndex( 1 );
 | 
			
		||||
    typeBox->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
 | 
			
		||||
 | 
			
		||||
    QToolButton *btnExport = new QToolButton( toolBar );
 | 
			
		||||
    btnExport->setText( "Export" );
 | 
			
		||||
    btnExport->setToolButtonStyle( Qt::ToolButtonTextUnderIcon );
 | 
			
		||||
    connect( btnExport, SIGNAL( clicked() ), d_plot, SLOT( exportPlot() ) );
 | 
			
		||||
 | 
			
		||||
    toolBar->addWidget( typeBox );
 | 
			
		||||
    toolBar->addWidget( btnExport );
 | 
			
		||||
    addToolBar( toolBar );
 | 
			
		||||
 | 
			
		||||
    d_plot->setMode( typeBox->currentIndex() );
 | 
			
		||||
    connect( typeBox, SIGNAL( currentIndexChanged( int ) ),
 | 
			
		||||
             d_plot, SLOT( setMode( int ) ) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main( int argc, char **argv )
 | 
			
		||||
{
 | 
			
		||||
    QApplication a( argc, argv );
 | 
			
		||||
 | 
			
		||||
    MainWindow w;
 | 
			
		||||
    w.setObjectName( "MainWindow" );
 | 
			
		||||
    w.resize( 600, 400 );
 | 
			
		||||
    w.show();
 | 
			
		||||
 | 
			
		||||
    return a.exec();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										209
									
								
								examples/friedberg/plot.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								examples/friedberg/plot.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,209 @@
 | 
			
		|||
#include "plot.h"
 | 
			
		||||
#include "friedberg2007.h"
 | 
			
		||||
#include <qwt_plot_zoomer.h>
 | 
			
		||||
#include <qwt_plot_panner.h>
 | 
			
		||||
#include <qwt_plot_marker.h>
 | 
			
		||||
#include <qwt_plot_grid.h>
 | 
			
		||||
#include <qwt_plot_curve.h>
 | 
			
		||||
#include <qwt_plot_canvas.h>
 | 
			
		||||
#include <qwt_plot_intervalcurve.h>
 | 
			
		||||
#include <qwt_legend.h>
 | 
			
		||||
#include <qwt_interval_symbol.h>
 | 
			
		||||
#include <qwt_symbol.h>
 | 
			
		||||
#include <qwt_series_data.h>
 | 
			
		||||
#include <qwt_text.h>
 | 
			
		||||
#include <qwt_scale_draw.h>
 | 
			
		||||
#include <qwt_plot_renderer.h>
 | 
			
		||||
#include <qdatetime.h>
 | 
			
		||||
 | 
			
		||||
class Grid: public QwtPlotGrid
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    Grid()
 | 
			
		||||
    {
 | 
			
		||||
        enableXMin( true );
 | 
			
		||||
        setMajorPen( Qt::white, 0, Qt::DotLine );
 | 
			
		||||
        setMinorPen( Qt::gray, 0, Qt::DotLine );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    virtual void updateScaleDiv( const QwtScaleDiv &xScaleDiv,
 | 
			
		||||
        const QwtScaleDiv &yScaleDiv )
 | 
			
		||||
    {
 | 
			
		||||
        QwtScaleDiv scaleDiv( xScaleDiv.lowerBound(), 
 | 
			
		||||
            xScaleDiv.upperBound() );
 | 
			
		||||
 | 
			
		||||
        scaleDiv.setTicks( QwtScaleDiv::MinorTick,
 | 
			
		||||
            xScaleDiv.ticks( QwtScaleDiv::MinorTick ) );
 | 
			
		||||
        scaleDiv.setTicks( QwtScaleDiv::MajorTick,
 | 
			
		||||
            xScaleDiv.ticks( QwtScaleDiv::MediumTick ) );
 | 
			
		||||
 | 
			
		||||
        QwtPlotGrid::updateScaleDiv( scaleDiv, yScaleDiv );
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class YearScaleDraw: public QwtScaleDraw
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    YearScaleDraw()
 | 
			
		||||
    {
 | 
			
		||||
        setTickLength( QwtScaleDiv::MajorTick, 0 );
 | 
			
		||||
        setTickLength( QwtScaleDiv::MinorTick, 0 );
 | 
			
		||||
        setTickLength( QwtScaleDiv::MediumTick, 6 );
 | 
			
		||||
 | 
			
		||||
        setLabelRotation( -60.0 );
 | 
			
		||||
        setLabelAlignment( Qt::AlignLeft | Qt::AlignVCenter );
 | 
			
		||||
 | 
			
		||||
        setSpacing( 15 );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    virtual QwtText label( double value ) const
 | 
			
		||||
    {
 | 
			
		||||
        return QDate::longMonthName( int( value / 30 ) + 1 );
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Plot::Plot( QWidget *parent ):
 | 
			
		||||
    QwtPlot( parent )
 | 
			
		||||
{
 | 
			
		||||
    setObjectName( "FriedbergPlot" );
 | 
			
		||||
    setTitle( "Temperature of Friedberg/Germany" );
 | 
			
		||||
 | 
			
		||||
    setAxisTitle( QwtPlot::xBottom, "2007" );
 | 
			
		||||
    setAxisScaleDiv( QwtPlot::xBottom, yearScaleDiv() );
 | 
			
		||||
    setAxisScaleDraw( QwtPlot::xBottom, new YearScaleDraw() );
 | 
			
		||||
 | 
			
		||||
    setAxisTitle( QwtPlot::yLeft,
 | 
			
		||||
        QString( "Temperature [%1C]" ).arg( QChar( 0x00B0 ) ) );
 | 
			
		||||
 | 
			
		||||
    QwtPlotCanvas *canvas = new QwtPlotCanvas();
 | 
			
		||||
    canvas->setPalette( Qt::darkGray );
 | 
			
		||||
    canvas->setBorderRadius( 10 );
 | 
			
		||||
 | 
			
		||||
    setCanvas( canvas );
 | 
			
		||||
 | 
			
		||||
    // grid
 | 
			
		||||
    QwtPlotGrid *grid = new Grid;
 | 
			
		||||
    grid->attach( this );
 | 
			
		||||
 | 
			
		||||
    insertLegend( new QwtLegend(), QwtPlot::RightLegend );
 | 
			
		||||
 | 
			
		||||
    const int numDays = 365;
 | 
			
		||||
    QVector<QPointF> averageData( numDays );
 | 
			
		||||
    QVector<QwtIntervalSample> rangeData( numDays );
 | 
			
		||||
 | 
			
		||||
    for ( int i = 0; i < numDays; i++ )
 | 
			
		||||
    {
 | 
			
		||||
        const Temperature &t = friedberg2007[i];
 | 
			
		||||
        averageData[i] = QPointF( double( i ), t.averageValue );
 | 
			
		||||
        rangeData[i] = QwtIntervalSample( double( i ),
 | 
			
		||||
            QwtInterval( t.minValue, t.maxValue ) );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    insertCurve( "Average", averageData, Qt::black );
 | 
			
		||||
    insertErrorBars( "Range", rangeData, Qt::blue );
 | 
			
		||||
 | 
			
		||||
    // LeftButton for the zooming
 | 
			
		||||
    // MidButton for the panning
 | 
			
		||||
    // RightButton: zoom out by 1
 | 
			
		||||
    // Ctrl+RighButton: zoom out to full size
 | 
			
		||||
 | 
			
		||||
    QwtPlotZoomer* zoomer = new QwtPlotZoomer( canvas );
 | 
			
		||||
    zoomer->setRubberBandPen( QColor( Qt::black ) );
 | 
			
		||||
    zoomer->setTrackerPen( QColor( Qt::black ) );
 | 
			
		||||
    zoomer->setMousePattern( QwtEventPattern::MouseSelect2,
 | 
			
		||||
        Qt::RightButton, Qt::ControlModifier );
 | 
			
		||||
    zoomer->setMousePattern( QwtEventPattern::MouseSelect3,
 | 
			
		||||
        Qt::RightButton );
 | 
			
		||||
 | 
			
		||||
    QwtPlotPanner *panner = new QwtPlotPanner( canvas );
 | 
			
		||||
    panner->setMouseButton( Qt::MidButton );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QwtScaleDiv Plot::yearScaleDiv() const
 | 
			
		||||
{
 | 
			
		||||
    const int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 | 
			
		||||
 | 
			
		||||
    QList<double> mediumTicks;
 | 
			
		||||
    mediumTicks += 0.0;
 | 
			
		||||
    for ( uint i = 0; i < sizeof( days ) / sizeof( days[0] ); i++ )
 | 
			
		||||
        mediumTicks += mediumTicks.last() + days[i];
 | 
			
		||||
 | 
			
		||||
    QList<double> minorTicks;
 | 
			
		||||
    for ( int i = 1; i <= 365; i += 7 )
 | 
			
		||||
        minorTicks += i;
 | 
			
		||||
 | 
			
		||||
    QList<double> majorTicks;
 | 
			
		||||
    for ( int i = 0; i < 12; i++ )
 | 
			
		||||
        majorTicks += i * 30 + 15;
 | 
			
		||||
 | 
			
		||||
    QwtScaleDiv scaleDiv( mediumTicks.first(), mediumTicks.last() + 1, 
 | 
			
		||||
        minorTicks, mediumTicks, majorTicks );
 | 
			
		||||
    return scaleDiv;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Plot::insertCurve( const QString& title,
 | 
			
		||||
    const QVector<QPointF>& samples, const QColor &color )
 | 
			
		||||
{
 | 
			
		||||
    d_curve = new QwtPlotCurve( title );
 | 
			
		||||
    d_curve->setRenderHint( QwtPlotItem::RenderAntialiased );
 | 
			
		||||
    d_curve->setStyle( QwtPlotCurve::NoCurve );
 | 
			
		||||
    d_curve->setLegendAttribute( QwtPlotCurve::LegendShowSymbol );
 | 
			
		||||
 | 
			
		||||
    QwtSymbol *symbol = new QwtSymbol( QwtSymbol::XCross );
 | 
			
		||||
    symbol->setSize( 4 );
 | 
			
		||||
    symbol->setPen( color );
 | 
			
		||||
    d_curve->setSymbol( symbol );
 | 
			
		||||
 | 
			
		||||
    d_curve->setSamples( samples );
 | 
			
		||||
    d_curve->attach( this );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Plot::insertErrorBars(
 | 
			
		||||
    const QString &title,
 | 
			
		||||
    const QVector<QwtIntervalSample>& samples,
 | 
			
		||||
    const QColor &color )
 | 
			
		||||
{
 | 
			
		||||
    d_intervalCurve = new QwtPlotIntervalCurve( title );
 | 
			
		||||
    d_intervalCurve->setRenderHint( QwtPlotItem::RenderAntialiased );
 | 
			
		||||
    d_intervalCurve->setPen( Qt::white );
 | 
			
		||||
 | 
			
		||||
    QColor bg( color );
 | 
			
		||||
    bg.setAlpha( 150 );
 | 
			
		||||
    d_intervalCurve->setBrush( QBrush( bg ) );
 | 
			
		||||
    d_intervalCurve->setStyle( QwtPlotIntervalCurve::Tube );
 | 
			
		||||
 | 
			
		||||
    d_intervalCurve->setSamples( samples );
 | 
			
		||||
    d_intervalCurve->attach( this );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Plot::setMode( int style )
 | 
			
		||||
{
 | 
			
		||||
    if ( style == Tube )
 | 
			
		||||
    {
 | 
			
		||||
        d_intervalCurve->setStyle( QwtPlotIntervalCurve::Tube );
 | 
			
		||||
        d_intervalCurve->setSymbol( NULL );
 | 
			
		||||
        d_intervalCurve->setRenderHint( QwtPlotItem::RenderAntialiased, true );
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        d_intervalCurve->setStyle( QwtPlotIntervalCurve::NoCurve );
 | 
			
		||||
 | 
			
		||||
        QColor c( d_intervalCurve->brush().color().rgb() ); // skip alpha
 | 
			
		||||
 | 
			
		||||
        QwtIntervalSymbol *errorBar =
 | 
			
		||||
            new QwtIntervalSymbol( QwtIntervalSymbol::Bar );
 | 
			
		||||
        errorBar->setWidth( 8 ); // should be something even
 | 
			
		||||
        errorBar->setPen( c );
 | 
			
		||||
 | 
			
		||||
        d_intervalCurve->setSymbol( errorBar );
 | 
			
		||||
        d_intervalCurve->setRenderHint( QwtPlotItem::RenderAntialiased, false );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    replot();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Plot::exportPlot()
 | 
			
		||||
{
 | 
			
		||||
    QwtPlotRenderer renderer;
 | 
			
		||||
    renderer.exportTo( this, "friedberg.pdf" );
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								examples/friedberg/plot.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								examples/friedberg/plot.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
#ifndef _PLOT_H_
 | 
			
		||||
#define _PLOT_H_
 | 
			
		||||
 | 
			
		||||
#include <qwt_plot.h>
 | 
			
		||||
#include <qwt_scale_div.h>
 | 
			
		||||
#include <qwt_series_data.h>
 | 
			
		||||
 | 
			
		||||
class QwtPlotCurve;
 | 
			
		||||
class QwtPlotIntervalCurve;
 | 
			
		||||
 | 
			
		||||
class Plot: public QwtPlot
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    enum Mode
 | 
			
		||||
    {
 | 
			
		||||
        Bars,
 | 
			
		||||
        Tube
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    Plot( QWidget * = NULL );
 | 
			
		||||
 | 
			
		||||
public Q_SLOTS:
 | 
			
		||||
    void setMode( int );
 | 
			
		||||
    void exportPlot();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void insertCurve( const QString &title,
 | 
			
		||||
        const QVector<QPointF> &, const QColor & );
 | 
			
		||||
 | 
			
		||||
    void insertErrorBars( const QString &title,
 | 
			
		||||
        const QVector<QwtIntervalSample> &,
 | 
			
		||||
        const QColor &color );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    QwtScaleDiv yearScaleDiv() const;
 | 
			
		||||
 | 
			
		||||
    QwtPlotIntervalCurve *d_intervalCurve;
 | 
			
		||||
    QwtPlotCurve *d_curve;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue