New feature in chart:
average lines git-svn-id: file:///home/jan/tmp/wetterstation/trunk@205 dd492736-c11a-0410-ad51-8c26713eaf7f
This commit is contained in:
parent
8e6d8a5f0b
commit
af3d7d51a5
|
|
@ -41,6 +41,7 @@
|
|||
#define DEFAULT_LABEL_SUM "no"
|
||||
#define DEFAULT_ZERO_MIN "no"
|
||||
#define DEFAULT_AS_BARS "no"
|
||||
#define DEFAULT_SHOW_AVERAGE "yes"
|
||||
#define DEFAULT_WIDTH "800"
|
||||
#define DEFAULT_HEIGHT "300"
|
||||
#define DEFAULT_SENS_ID "1"
|
||||
|
|
@ -56,6 +57,7 @@
|
|||
#define DEFAULT_DIA_BG_COLOR "F0:A0:D0:D0"
|
||||
#define DEFAULT_ZERO_LINE_COLOR "BF:80:80:40"
|
||||
#define DEFAULT_DIA_LINE_COLOR "60:30:50:30"
|
||||
#define DEFAULT_DIA_AV_LINE_COLOR "30:60:50:30"
|
||||
#define DEFAULT_DIA_GRID_X_COLOR "60:60:60:EF"
|
||||
#define DEFAULT_DIA_GRID_Y_COLOR "60:60:60:EF"
|
||||
#define DEFAULT_DIA_BORDER_COLOR "a0:a0:a0:af"
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ y_axis_desc Temparatur (
|
|||
x_format %d.%m.%y # 'Normale' Labels
|
||||
x_format_extra %d.%m.%y| %H:%M # Das ersre und das letzte Label
|
||||
|
||||
# Gibt an, ob eine Linie mit den Durchschnittswerten gezeichnet werden soll
|
||||
# Funktioniert NICHT in Verbindung mit Balkendiagrammen
|
||||
show_average yes
|
||||
|
||||
# Folgende Angaben sind vor allem fuer die Balkendiagramme wichtig.
|
||||
# Sonst sollten sie imer auf no stehen!
|
||||
zero_min no # Die Nullinie auf jeden Fall anzeigen
|
||||
|
|
@ -82,6 +86,7 @@ bg_color FF:FA:F5:00 # Gesamthintergrund des Diagrames
|
|||
dia_bg_color F0:D0:A0:D0 # Hintergrund des Bereiches mit den Daten
|
||||
zero_line_color DF:80:80:40 # Farbe der 'Nulllinie'
|
||||
dia_line_color 80:30:30:30 # Farbe der Balken oder der Linie
|
||||
dia_av_line_color 50:A0:50:D0 # Farbe der Durchschnittswert-Linie
|
||||
dia_grid_x_color 60:60:60:EF # Farbe der Senkrechten Striche
|
||||
dia_grid_y_color 60:60:60:EF # Farbe der Waagerechten Striche
|
||||
dia_border_color a0:a0:a0:a0 # Farbe des Diagramrahmens (rahmen um den Datenbereich)
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ y_axis_desc Luftfeuchte (%)
|
|||
x_format %d.%m.%y # 'Normale' Labels
|
||||
x_format_extra %d.%m.%y| %H:%M # Das ersre und das letzte Label
|
||||
|
||||
# Gibt an, ob eine Linie mit den Durchschnittswerten gezeichnet werden soll
|
||||
# Funktioniert NICHT in Verbindung mit Balkendiagrammen
|
||||
show_average yes
|
||||
|
||||
# Folgende Angaben sind vor allem fuer die Balkendiagramme wichtig.
|
||||
# Sonst sollten sie imer auf no stehen!
|
||||
zero_min no # Die Nullinie auf jeden Fall anzeigen
|
||||
|
|
@ -82,6 +86,7 @@ bg_color FF:FA:F5:00 # Gesamthintergrund des Diagrames
|
|||
dia_bg_color F0:D0:A0:D0 # Hintergrund des Bereiches mit den Daten
|
||||
zero_line_color DF:80:80:40 # Farbe der 'Nulllinie'
|
||||
dia_line_color 80:30:30:30 # Farbe der Balken oder der Linie
|
||||
dia_av_line_color 50:A0:50:D0 # Farbe der Durchschnittswert-Linie
|
||||
dia_grid_x_color 60:60:60:EF # Farbe der Senkrechten Striche
|
||||
dia_grid_y_color 60:60:60:EF # Farbe der Waagerechten Striche
|
||||
dia_border_color a0:a0:a0:a0 # Farbe des Diagramrahmens (rahmen um den Datenbereich)
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ y_axis_desc Luftdruck (hpa)
|
|||
x_format %d.%m.%y # 'Normale' Labels
|
||||
x_format_extra %d.%m.%y| %H:%M # Das ersre und das letzte Label
|
||||
|
||||
# Gibt an, ob eine Linie mit den Durchschnittswerten gezeichnet werden soll
|
||||
# Funktioniert NICHT in Verbindung mit Balkendiagrammen
|
||||
show_average yes
|
||||
|
||||
# Folgende Angaben sind vor allem fuer die Balkendiagramme wichtig.
|
||||
# Sonst sollten sie imer auf no stehen!
|
||||
zero_min no # Die Nullinie auf jeden Fall anzeigen
|
||||
|
|
@ -82,6 +86,7 @@ bg_color FF:FA:F5:00 # Gesamthintergrund des Diagrames
|
|||
dia_bg_color F0:D0:A0:D0 # Hintergrund des Bereiches mit den Daten
|
||||
zero_line_color DF:80:80:40 # Farbe der 'Nulllinie'
|
||||
dia_line_color 80:30:30:30 # Farbe der Balken oder der Linie
|
||||
dia_av_line_color 50:A0:50:D0 # Farbe der Durchschnittswert-Linie
|
||||
dia_grid_x_color 60:60:60:EF # Farbe der Senkrechten Striche
|
||||
dia_grid_y_color 60:60:60:EF # Farbe der Waagerechten Striche
|
||||
dia_border_color a0:a0:a0:a0 # Farbe des Diagramrahmens (rahmen um den Datenbereich)
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ y_axis_desc Niederschlag (Liter)
|
|||
x_format %d.%m.%y # 'Normale' Labels
|
||||
x_format_extra %d.%m.%y| %H:%M # Das ersre und das letzte Label
|
||||
|
||||
# Gibt an, ob eine Linie mit den Durchschnittswerten gezeichnet werden soll
|
||||
# Funktioniert NICHT in Verbindung mit Balkendiagrammen
|
||||
show_average no
|
||||
|
||||
# Folgende Angaben sind vor allem fuer die Balkendiagramme wichtig.
|
||||
# Sonst sollten sie imer auf no stehen!
|
||||
zero_min yes # Die Nullinie auf jeden Fall anzeigen
|
||||
|
|
@ -82,6 +86,7 @@ bg_color FF:FA:F5:00 # Gesamthintergrund des Diagrames
|
|||
dia_bg_color F0:D0:A0:D0 # Hintergrund des Bereiches mit den Daten
|
||||
zero_line_color DF:80:80:40 # Farbe der 'Nulllinie'
|
||||
dia_line_color 30:30:80:50 # Farbe der Balken oder der Linie
|
||||
dia_av_line_color 50:A0:50:D0 # Farbe der Durchschnittswert-Linie
|
||||
dia_grid_x_color 60:60:60:EF # Farbe der Senkrechten Striche
|
||||
dia_grid_y_color 60:60:60:EF # Farbe der Waagerechten Striche
|
||||
dia_border_color a0:a0:a0:a0 # Farbe des Diagramrahmens (rahmen um den Datenbereich)
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ y_axis_desc Temparatur (
|
|||
x_format %d.%m.%y # 'Normale' Labels
|
||||
x_format_extra %d.%m.%y| %H:%M # Das ersre und das letzte Label
|
||||
|
||||
# Gibt an, ob eine Linie mit den Durchschnittswerten gezeichnet werden soll
|
||||
# Funktioniert NICHT in Verbindung mit Balkendiagrammen
|
||||
show_average yes
|
||||
|
||||
# Folgende Angaben sind vor allem fuer die Balkendiagramme wichtig.
|
||||
# Sonst sollten sie imer auf no stehen!
|
||||
zero_min no # Die Nullinie auf jeden Fall anzeigen
|
||||
|
|
@ -82,6 +86,7 @@ bg_color FF:FA:F5:00 # Gesamthintergrund des Diagrames
|
|||
dia_bg_color F0:D0:A0:D0 # Hintergrund des Bereiches mit den Daten
|
||||
zero_line_color DF:80:80:40 # Farbe der 'Nulllinie'
|
||||
dia_line_color 80:30:30:30 # Farbe der Balken oder der Linie
|
||||
dia_av_line_color 50:A0:50:D0 # Farbe der Durchschnittswert-Linie
|
||||
dia_grid_x_color 60:60:60:EF # Farbe der Senkrechten Striche
|
||||
dia_grid_y_color 60:60:60:EF # Farbe der Waagerechten Striche
|
||||
dia_border_color a0:a0:a0:a0 # Farbe des Diagramrahmens (rahmen um den Datenbereich)
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@ manual_table no
|
|||
manual_table_name auss2_data
|
||||
table_field temp
|
||||
#table_field press
|
||||
gen_interval 10
|
||||
show_interval 10d
|
||||
label_interval 1d
|
||||
fixed_timepoint yes
|
||||
gen_interval 1
|
||||
show_interval 1y
|
||||
label_interval 30d
|
||||
fixed_timepoint no
|
||||
timepoint 2006-12-17-13-00
|
||||
width 800
|
||||
height 300
|
||||
ensor_id 1
|
||||
sensor_id 4
|
||||
value_koeffizient 0.1
|
||||
#value_koeffizient 1.0
|
||||
unit °C
|
||||
|
|
@ -23,6 +23,7 @@ x_format_extra %d.%m.%y| %H:%M
|
|||
zero_min no
|
||||
as_bars no
|
||||
label_sum no
|
||||
show_average yes
|
||||
|
||||
|
||||
|
||||
|
|
@ -30,6 +31,7 @@ bg_color DF:DF:EF:00
|
|||
dia_bg_color F0:A0:D0:D0
|
||||
zero_line_color BF:80:80:40
|
||||
dia_line_color 60:30:50:30
|
||||
dia_av_line_color 50:60:30:D0
|
||||
dia_grid_x_color 60:60:60:EF
|
||||
dia_grid_y_color 60:60:60:EF
|
||||
dia_border_color a0:a0:a0:af
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ y_axis_desc Windgeschwindigkeit (km/h)
|
|||
x_format %d.%m.%y # 'Normale' Labels
|
||||
x_format_extra %d.%m.%y| %H:%M # Das ersre und das letzte Label
|
||||
|
||||
# Gibt an, ob eine Linie mit den Durchschnittswerten gezeichnet werden soll
|
||||
# Funktioniert NICHT in Verbindung mit Balkendiagrammen
|
||||
show_average yes
|
||||
|
||||
# Folgende Angaben sind vor allem fuer die Balkendiagramme wichtig.
|
||||
# Sonst sollten sie imer auf no stehen!
|
||||
zero_min no # Die Nullinie auf jeden Fall anzeigen
|
||||
|
|
@ -82,6 +86,7 @@ bg_color FF:FA:F5:00 # Gesamthintergrund des Diagrames
|
|||
dia_bg_color F0:D0:A0:D0 # Hintergrund des Bereiches mit den Daten
|
||||
zero_line_color DF:80:80:40 # Farbe der 'Nulllinie'
|
||||
dia_line_color 80:30:30:30 # Farbe der Balken oder der Linie
|
||||
dia_av_line_color 50:A0:50:D0 # Farbe der Durchschnittswert-Linie
|
||||
dia_grid_x_color 60:60:60:EF # Farbe der Senkrechten Striche
|
||||
dia_grid_y_color 60:60:60:EF # Farbe der Waagerechten Striche
|
||||
dia_border_color a0:a0:a0:a0 # Farbe des Diagramrahmens (rahmen um den Datenbereich)
|
||||
|
|
|
|||
|
|
@ -54,12 +54,14 @@ typedef struct image_cfg {
|
|||
char *x_fmt; /* Formatstring fuer die restlichen Labels */
|
||||
int zero_min; /* Nullinie auf jeden Fall anzeigen */
|
||||
int bars; /* Balken malen statt einer Linie */
|
||||
int show_average; /* Durchschnittslinie zeichnen */
|
||||
int dflt_dir; /* Standart - Verzeichnis fuer die Bilder */
|
||||
|
||||
/* Farben */
|
||||
img_color_ptr bg_color;
|
||||
img_color_ptr dia_bg_color;
|
||||
img_color_ptr dia_line_color;
|
||||
img_color_ptr dia_av_line_color;
|
||||
img_color_ptr dia_grid_x_color;
|
||||
img_color_ptr dia_grid_y_color;
|
||||
img_color_ptr dia_border_color;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ static const config_keyword keywords[] = {
|
|||
{"sensor_id", read_int, &(img_cfg.sens_id), DEFAULT_SENS_ID},
|
||||
{"zero_min", read_yn, &(img_cfg.zero_min), DEFAULT_ZERO_MIN},
|
||||
{"as_bars", read_yn, &(img_cfg.bars), DEFAULT_AS_BARS},
|
||||
{"show_average", read_yn, &(img_cfg.show_average), DEFAULT_SHOW_AVERAGE},
|
||||
{"x_axis_desc", read_str, &(img_cfg.x_desc), DEFAULT_X_AX_DESC},
|
||||
{"y_axis_desc", read_str, &(img_cfg.y_desc), DEFAULT_Y_AX_DESC},
|
||||
{"x_format", read_fmt_str, &(img_cfg.x_fmt), DEFAULT_X_FORMAT},
|
||||
|
|
@ -71,6 +72,7 @@ static const config_keyword keywords[] = {
|
|||
{"bg_color", read_color, &(img_cfg.bg_color), DEFAULT_BG_COLOR},
|
||||
{"dia_bg_color", read_color, &(img_cfg.dia_bg_color), DEFAULT_DIA_BG_COLOR},
|
||||
{"dia_line_color", read_color, &(img_cfg.dia_line_color), DEFAULT_DIA_LINE_COLOR},
|
||||
{"dia_av_line_color", read_color, &(img_cfg.dia_av_line_color), DEFAULT_DIA_AV_LINE_COLOR},
|
||||
{"dia_grid_x_color", read_color, &(img_cfg.dia_grid_x_color), DEFAULT_DIA_GRID_X_COLOR},
|
||||
{"dia_grid_y_color", read_color, &(img_cfg.dia_grid_y_color), DEFAULT_DIA_GRID_Y_COLOR},
|
||||
{"dia_border_color", read_color, &(img_cfg.dia_border_color), DEFAULT_DIA_BORDER_COLOR},
|
||||
|
|
|
|||
|
|
@ -40,10 +40,11 @@ static pix_list_ptr max = NULL; /* Pointer auf Max - Element */
|
|||
double real_min = 0; /* Realer Max - Wert */
|
||||
double real_max = 0; /* Realer Min - Wert */
|
||||
static long base_time; /* Zeit an der 0-Koordinate (lt. Datenbank!) */
|
||||
int max_diff = 0; /* Maximaler Abstand, den 2 Werte haben duerfen, ohne das die Linie unterbrochen wird */
|
||||
|
||||
|
||||
/* Funktionsdefinitionen */
|
||||
static pix_list_ptr add_pix_value(pix_list_ptr , long, int , int, int );
|
||||
static pix_list_ptr add_pix_value(pix_list_ptr , int , int, int );
|
||||
static char *get_conn_string();
|
||||
static PGconn *pg_check_connect(char *);
|
||||
static PGresult *pg_check_exec(PGconn *, char *);
|
||||
|
|
@ -297,7 +298,6 @@ pix_list_ptr get_pix_list(int c_width){
|
|||
int pix_coord; /* x - Koordinate, an die der Wert gehoert */
|
||||
int i, s, t, u; /* Laufvariable zum durchlaufen des Datenbank-resuls */
|
||||
long timestamp;
|
||||
int max_diff;
|
||||
pix_list_ptr list_ptr = NULL; /* Zeiger auf den Anfang der Wertliste */
|
||||
pix_list_ptr temp_ptr = NULL; /* Zeiger zum durchlaufen der Wertliste */
|
||||
|
||||
|
|
@ -347,7 +347,7 @@ pix_list_ptr get_pix_list(int c_width){
|
|||
pix_coord = floor( ((double)time_temp) * seconds_per_pix) ;
|
||||
|
||||
/* Listenelement generieren */
|
||||
temp_ptr = add_pix_value(temp_ptr, timestamp, pix_coord, atoi( PQgetvalue(res, i, val_field) ) , max_diff);
|
||||
temp_ptr = add_pix_value(temp_ptr, pix_coord, atoi( PQgetvalue(res, i, val_field) ) , max_diff);
|
||||
|
||||
/* Rueckgabe- und Max/Min-pointer zuweisen */
|
||||
if (list_ptr == NULL){
|
||||
|
|
@ -371,7 +371,7 @@ pix_list_ptr get_pix_list(int c_width){
|
|||
time_temp = timestamp;
|
||||
}
|
||||
pix_coord = floor( ((double)time_temp) * seconds_per_pix) ;
|
||||
temp_ptr = add_pix_value(temp_ptr, timestamp, pix_coord, 0 , max_diff);
|
||||
temp_ptr = add_pix_value(temp_ptr, pix_coord, 0 , max_diff);
|
||||
list_ptr = temp_ptr;
|
||||
min = temp_ptr;
|
||||
max = temp_ptr;
|
||||
|
|
@ -419,7 +419,7 @@ pix_list_ptr get_pix_list(int c_width){
|
|||
}
|
||||
|
||||
/* Speichert einen geholten Wert ab */
|
||||
static pix_list_ptr add_pix_value(pix_list_ptr ptr, long timestamp, int coord, int value, int max_diff){
|
||||
static pix_list_ptr add_pix_value(pix_list_ptr ptr, int coord, int value, int max_diff){
|
||||
int old_coord;
|
||||
|
||||
/* Erstes Element */
|
||||
|
|
@ -464,6 +464,84 @@ static pix_list_ptr add_pix_value(pix_list_ptr ptr, long timestamp, int coord, i
|
|||
|
||||
}
|
||||
|
||||
/* Durchschnittslinie
|
||||
* reale Werte, eff. Zeichenbreite */
|
||||
pix_list_ptr build_average_line(pix_list_ptr real_list, int c_width){
|
||||
|
||||
int list_count = 0;
|
||||
int list_offset = 0;
|
||||
int field_size = c_width;
|
||||
int i,j,m;
|
||||
double sum = 0;
|
||||
double koeff = 0;
|
||||
double count = 0;
|
||||
|
||||
pix_list_ptr old_temp = real_list;
|
||||
pix_list_ptr *old_ptr_field = malloc(sizeof(pix_list_ptr) * (field_size));
|
||||
pix_list_ptr new_list = NULL;
|
||||
pix_list_ptr new_list_temp = NULL;
|
||||
|
||||
list_offset = old_temp->x_pix_coord;
|
||||
|
||||
DEBUGOUT2("list_offset %d\n", list_offset);
|
||||
|
||||
for(; old_temp; old_temp = old_temp->next){
|
||||
if(list_count >= field_size){
|
||||
field_size += c_width;
|
||||
realloc(old_ptr_field, sizeof(pix_list_ptr) * (field_size));
|
||||
}
|
||||
|
||||
DEBUGOUT2("list_count: %d -- ", list_count);
|
||||
DEBUGOUT2("old_temp->x_pix_coord: %d -- ",old_temp->x_pix_coord);
|
||||
|
||||
while( (list_count + list_offset) > old_temp->x_pix_coord){
|
||||
old_ptr_field[list_count] = NULL;
|
||||
list_count++;
|
||||
DEBUGOUT1("Fuege Null hinzu\n");
|
||||
}
|
||||
|
||||
old_ptr_field[list_count] = old_temp;
|
||||
DEBUGOUT1("Fuege Wert hinzu\n");
|
||||
|
||||
list_count++;
|
||||
}
|
||||
|
||||
for(i = 0; i < list_count; i++){
|
||||
if(old_ptr_field[i] != NULL){
|
||||
sum = ((double)old_ptr_field[i]->value_sum) / ((double)old_ptr_field[i]->value_count);
|
||||
count = 1;
|
||||
for(j = 1; j < 30; j++){
|
||||
koeff = 0.9 - (0.01 * (3*j));
|
||||
m = 0;
|
||||
if( (i - j) >= 0){
|
||||
if(old_ptr_field[i-j] != NULL){
|
||||
sum += (((double)old_ptr_field[i-j]->value_sum) / ((double)old_ptr_field[i-j]->value_count)) * koeff;
|
||||
m++;
|
||||
}
|
||||
}
|
||||
if( (i + j) < list_count){
|
||||
if(old_ptr_field[i+j] != NULL){
|
||||
sum += (((double)old_ptr_field[i+j]->value_sum) / ((double)old_ptr_field[i+j]->value_count)) * koeff;
|
||||
m++;
|
||||
}
|
||||
}
|
||||
count += m * koeff;
|
||||
|
||||
}
|
||||
new_list_temp = add_pix_value(new_list_temp, old_ptr_field[i]->x_pix_coord, floor(sum / count), max_diff);
|
||||
|
||||
if(new_list == NULL){
|
||||
new_list = new_list_temp;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
free(old_ptr_field);
|
||||
|
||||
return new_list;
|
||||
}
|
||||
|
||||
|
||||
/* baut den String fuer die Postgres-Verbindung zusammen */
|
||||
static char *get_conn_string(){
|
||||
|
|
|
|||
|
|
@ -50,6 +50,13 @@ typedef struct label_list {
|
|||
*/
|
||||
pix_list_ptr get_pix_list(int );
|
||||
|
||||
/* Baut die Durchschnittslinie.
|
||||
* 1. Argument: Die Daten der Linie mit den 'realen' Werten
|
||||
* 2. Argument: die effektive Breite des Bereiches in dem gezeichnet werden soll
|
||||
* Rueckgabe: die liste mit den Werten
|
||||
*/
|
||||
pix_list_ptr build_average_line(pix_list_ptr real_list, int c_width);
|
||||
|
||||
|
||||
/* Max. Wert */
|
||||
pix_list_ptr get_min_val();
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ static gdImagePtr draw_image(gdImagePtr img){
|
|||
|
||||
/* Werte und Labels */
|
||||
pix_list_ptr pix_list = NULL;
|
||||
pix_list_ptr average_pix_list = NULL;
|
||||
label_list_ptr x_labels = NULL;
|
||||
label_list_ptr y_labels = NULL;
|
||||
|
||||
|
|
@ -117,6 +118,7 @@ static gdImagePtr draw_image(gdImagePtr img){
|
|||
|
||||
/* Farben */
|
||||
color val_line_c = alloc_alpha_color(img, img_cfg.dia_line_color);
|
||||
color av_line_c = alloc_alpha_color(img, img_cfg.dia_av_line_color);
|
||||
color zero_line_c = alloc_alpha_color(img, img_cfg.zero_line_color);
|
||||
color dia_bg_c = alloc_alpha_color(img, img_cfg.dia_bg_color);
|
||||
color diag_grid_x_c = alloc_alpha_color(img, img_cfg.dia_grid_x_color);
|
||||
|
|
@ -165,7 +167,10 @@ static gdImagePtr draw_image(gdImagePtr img){
|
|||
gdImageStringFT(img, &brect[0], desc_x_c, IMG_FONT, 9, 0 , (offset_x_left + (dia_width / 2)) - (x_desc_d.width / 2), (img_cfg.height - 5) - x_desc_d.l_b_y, img_cfg.x_desc);
|
||||
|
||||
/* Werte holen */
|
||||
pix_list = get_pix_list(dia_width);
|
||||
pix_list = get_pix_list(dia_width);
|
||||
if(!img_cfg.bars && img_cfg.show_average){
|
||||
average_pix_list = build_average_line(pix_list, dia_width);
|
||||
}
|
||||
|
||||
/* Diagramhintergrund */
|
||||
gdImageFilledRectangle(img, offset_x_left, offset_y_top, img_cfg.width - offset_x_right, img_cfg.height - offset_y_bottom, dia_bg_c);
|
||||
|
|
@ -181,6 +186,9 @@ static gdImagePtr draw_image(gdImagePtr img){
|
|||
|
||||
/* y-Werte skalieren */
|
||||
zero_line = scale_y_coords(pix_list, dia_height);
|
||||
if(!img_cfg.bars && img_cfg.show_average){
|
||||
scale_y_coords(average_pix_list, dia_height);
|
||||
}
|
||||
|
||||
/* Vertikale linien + x - Labels*/
|
||||
x_labels = get_x_label_list(dia_width);
|
||||
|
|
@ -199,6 +207,15 @@ static gdImagePtr draw_image(gdImagePtr img){
|
|||
gdImageLine(img, offset_x_left, zero_line + offset_y_top, img_cfg.width - offset_x_right, zero_line + offset_y_top, zero_line_c);
|
||||
|
||||
|
||||
/* Durchschnitts-Werte Zeichnen */
|
||||
if(!img_cfg.bars && img_cfg.show_average){
|
||||
for (; average_pix_list->next; average_pix_list = average_pix_list->next){
|
||||
if(!average_pix_list->next->no_line){
|
||||
gdImageLine(img, (offset_x_left + average_pix_list->x_pix_coord), (offset_y_top + average_pix_list->y_pix_coord), (offset_x_left + average_pix_list->next->x_pix_coord), (offset_y_top + average_pix_list->next->y_pix_coord), av_line_c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Werte Zeichnen */
|
||||
if(!img_cfg.bars){
|
||||
for (; pix_list->next; pix_list = pix_list->next){
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
weatherstation (1.0.6-1) stable; urgency=low
|
||||
|
||||
* New feature added in chart-program: Now it can draw a average.line
|
||||
|
||||
-- Jan Losinski <losinski@wh2.tu-dresden.de> Tue, 2 Jan 2007 06:54:55 +0100
|
||||
|
||||
weatherstation (1.0.5-2) stable; urgency=low
|
||||
|
||||
* chart-example-configs updated
|
||||
|
|
|
|||
Loading…
Reference in New Issue