mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Improve visual appearance of temperature plot
Prervent tiny temperature changes from being exaggerated in the plot. Also, shift pressure plot around a bit (if necessary) to prevent it from ending in the same space as the temperature plato on the profile graph. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
05b55542c8
commit
79798dc15b
1 changed files with 17 additions and 8 deletions
23
profile.c
23
profile.c
|
@ -33,8 +33,9 @@ struct plot_info {
|
||||||
int nr;
|
int nr;
|
||||||
int maxtime;
|
int maxtime;
|
||||||
int meandepth, maxdepth;
|
int meandepth, maxdepth;
|
||||||
int maxpressure;
|
int endpressure, maxpressure;
|
||||||
int mintemp, maxtemp;
|
int mintemp, maxtemp, endtemp;
|
||||||
|
double endtempcoord;
|
||||||
struct plot_data {
|
struct plot_data {
|
||||||
unsigned int same_cylinder:1;
|
unsigned int same_cylinder:1;
|
||||||
unsigned int cylinderindex;
|
unsigned int cylinderindex;
|
||||||
|
@ -1050,16 +1051,16 @@ static int setup_temperature_limits(struct graphics_context *gc, struct plot_inf
|
||||||
/* Show temperatures in roughly the lower third, but make sure the scale
|
/* Show temperatures in roughly the lower third, but make sure the scale
|
||||||
is at least somewhat reasonable */
|
is at least somewhat reasonable */
|
||||||
delta = maxtemp - mintemp;
|
delta = maxtemp - mintemp;
|
||||||
if (delta > 3000) /* more than 3K in fluctuation */
|
if (delta < 3000) /* less than 3K in fluctuation */
|
||||||
|
delta = 3000;
|
||||||
gc->topy = maxtemp + delta*2;
|
gc->topy = maxtemp + delta*2;
|
||||||
else
|
|
||||||
gc->topy = maxtemp + 1500 + delta*2;
|
|
||||||
|
|
||||||
if (GRAPHS_ENABLED)
|
if (GRAPHS_ENABLED)
|
||||||
gc->bottomy = mintemp - delta * 2;
|
gc->bottomy = mintemp - delta * 2;
|
||||||
else
|
else
|
||||||
gc->bottomy = mintemp - delta / 2;
|
gc->bottomy = mintemp - delta / 3;
|
||||||
|
|
||||||
|
pi->endtempcoord = SCALEY(gc, pi->endtemp);
|
||||||
return maxtemp > mintemp;
|
return maxtemp > mintemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1151,7 +1152,13 @@ static int get_cylinder_pressure_range(struct graphics_context *gc, struct plot_
|
||||||
else
|
else
|
||||||
gc->bottomy = 0;
|
gc->bottomy = 0;
|
||||||
gc->topy = pi->maxpressure * 1.5;
|
gc->topy = pi->maxpressure * 1.5;
|
||||||
return pi->maxpressure != 0;
|
if (!pi->maxpressure)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
while (pi->endtempcoord <= SCALEY(gc, pi->endpressure - (gc->topy) * 0.1))
|
||||||
|
gc->bottomy -= gc->topy * 0.1;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set the color for the pressure plot according to temporary sac rate
|
/* set the color for the pressure plot according to temporary sac rate
|
||||||
|
@ -1395,6 +1402,7 @@ static struct plot_info *analyze_plot_info(struct plot_info *pi)
|
||||||
if (pressure) {
|
if (pressure) {
|
||||||
if (pressure > pi->maxpressure)
|
if (pressure > pi->maxpressure)
|
||||||
pi->maxpressure = pressure;
|
pi->maxpressure = pressure;
|
||||||
|
pi->endpressure = pressure;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (temperature) {
|
if (temperature) {
|
||||||
|
@ -1402,6 +1410,7 @@ static struct plot_info *analyze_plot_info(struct plot_info *pi)
|
||||||
pi->mintemp = temperature;
|
pi->mintemp = temperature;
|
||||||
if (temperature > pi->maxtemp)
|
if (temperature > pi->maxtemp)
|
||||||
pi->maxtemp = temperature;
|
pi->maxtemp = temperature;
|
||||||
|
pi->endtemp = temperature;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue