fixed axis ticks mainly used for y-axis.
This commit is contained in:
@@ -52,6 +52,92 @@
|
|||||||
</content>
|
</content>
|
||||||
</inline>
|
</inline>
|
||||||
|
|
||||||
|
<inline loc="code">
|
||||||
|
<content>
|
||||||
|
static int _genLog10TicksUp($(struct_type) *st, \n
|
||||||
|
double vStep, \n
|
||||||
|
double vBegin, double vEnd, \n
|
||||||
|
int level, \n
|
||||||
|
int precision) \n
|
||||||
|
{ \n
|
||||||
|
double vRun; \n
|
||||||
|
GWEN_BUFFER *dbuf; \n
|
||||||
|
\n
|
||||||
|
dbuf=GWEN_Buffer_new(0, 256, 0, 1); \n
|
||||||
|
vRun=vBegin; \n
|
||||||
|
while(vRun<=vEnd) { \n
|
||||||
|
if (vRun>=vBegin) { \n
|
||||||
|
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
||||||
|
GWEN_Buffer_AppendArgs(dbuf, "%.*f", precision, vRun); \n
|
||||||
|
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, level, 0, vStep); \n
|
||||||
|
DBG_INFO(NULL, "Adding tick %d: %s", level, GWEN_Buffer_GetStart(dbuf)); \n
|
||||||
|
GWEN_Buffer_Reset(dbuf); \n
|
||||||
|
} \n
|
||||||
|
} \n
|
||||||
|
vRun+=vStep; \n
|
||||||
|
} \n
|
||||||
|
GWEN_Buffer_free(dbuf); \n
|
||||||
|
return ($(struct_prefix)_HasAtLeastNLevelTicks(st, level, level?1:4))?1:0; \n
|
||||||
|
} \n
|
||||||
|
</content>
|
||||||
|
</inline>
|
||||||
|
|
||||||
|
|
||||||
|
<inline loc="code">
|
||||||
|
<content>
|
||||||
|
static int _genLog10TicksDown($(struct_type) *st, \n
|
||||||
|
double vStep, \n
|
||||||
|
double vBegin, double vEnd, \n
|
||||||
|
int level, \n
|
||||||
|
int precision) \n
|
||||||
|
{ \n
|
||||||
|
double vRun; \n
|
||||||
|
GWEN_BUFFER *dbuf; \n
|
||||||
|
\n
|
||||||
|
dbuf=GWEN_Buffer_new(0, 256, 0, 1); \n
|
||||||
|
vRun=vBegin; \n
|
||||||
|
while(vRun>=vEnd) { \n
|
||||||
|
if (vRun<=vBegin) { \n
|
||||||
|
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
||||||
|
GWEN_Buffer_AppendArgs(dbuf, "%.*f", precision, vRun); \n
|
||||||
|
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, level, 0, vStep); \n
|
||||||
|
DBG_INFO(NULL, "Adding tick %d: %s", level, GWEN_Buffer_GetStart(dbuf)); \n
|
||||||
|
GWEN_Buffer_Reset(dbuf); \n
|
||||||
|
} \n
|
||||||
|
} \n
|
||||||
|
vRun-=vStep; \n
|
||||||
|
} \n
|
||||||
|
GWEN_Buffer_free(dbuf); \n
|
||||||
|
return ($(struct_prefix)_HasAtLeastNLevelTicks(st, level, level?1:4))?1:0; \n
|
||||||
|
} \n
|
||||||
|
</content>
|
||||||
|
</inline>
|
||||||
|
|
||||||
|
|
||||||
|
<inline loc="code">
|
||||||
|
<content>
|
||||||
|
static int _genLog10Ticks($(struct_type) *st, \n
|
||||||
|
double vStart, \n
|
||||||
|
double vStep, \n
|
||||||
|
double vMin, double vMax, \n
|
||||||
|
int level, \n
|
||||||
|
int precision) \n
|
||||||
|
{ \n
|
||||||
|
if (vMin<0.0 && vMax>=0.0) { \n
|
||||||
|
int rv; \n
|
||||||
|
\n
|
||||||
|
rv=_genLog10TicksUp(st, vStep, 0.0, vMax, level, precision); \n
|
||||||
|
rv|=_genLog10TicksDown(st, vStep, 0.0, vMin, level, precision); \n
|
||||||
|
return rv; \n
|
||||||
|
} \n
|
||||||
|
else if (vMin<0.0 && vMax<=0.0) \n
|
||||||
|
return _genLog10TicksDown(st, vStep, vStart, vMin, level, precision); \n
|
||||||
|
else \n
|
||||||
|
return _genLog10TicksUp(st, vStep, vStart, vMax, level, precision); \n
|
||||||
|
} \n
|
||||||
|
</content>
|
||||||
|
</inline>
|
||||||
|
|
||||||
|
|
||||||
<inline loc="end" access="public">
|
<inline loc="end" access="public">
|
||||||
<content>
|
<content>
|
||||||
@@ -65,68 +151,44 @@
|
|||||||
{ \n
|
{ \n
|
||||||
double absMaxValue; \n
|
double absMaxValue; \n
|
||||||
double v; \n
|
double v; \n
|
||||||
double vRun; \n
|
double vMin; \n
|
||||||
double startValue; \n
|
double vMax; \n
|
||||||
GWEN_BUFFER *dbuf; \n
|
double vStart; \n
|
||||||
int nextLevel=0; \n
|
int nextLevel=0; \n
|
||||||
\n
|
\n
|
||||||
absMaxValue=abs(st->minValue); \n
|
vMin=st->minValue; \n
|
||||||
v=abs(st->maxValue); \n
|
vMax=st->maxValue; \n
|
||||||
|
absMaxValue=abs(vMin); \n
|
||||||
|
v=abs(vMax); \n
|
||||||
absMaxValue=(v>absMaxValue)?v:absMaxValue; \n
|
absMaxValue=(v>absMaxValue)?v:absMaxValue; \n
|
||||||
\n
|
\n
|
||||||
dbuf=GWEN_Buffer_new(0, 64, 0, 1); \n
|
|
||||||
if (absMaxValue==0.0) \n
|
if (absMaxValue==0.0) \n
|
||||||
absMaxValue=1.0; \n
|
absMaxValue=1.0; \n
|
||||||
v=pow(10, floor(log10(absMaxValue))); \n
|
v=pow(10, floor(log10(absMaxValue))); \n
|
||||||
\n
|
\n
|
||||||
startValue=v; \n
|
vStart=v; \n
|
||||||
if ((st->minValue)<startValue) \n
|
if (vMin<vStart) \n
|
||||||
startValue=-startValue; \n
|
vStart=-vStart; \n
|
||||||
|
\n
|
||||||
|
for(;;) { \n
|
||||||
|
int rv; \n
|
||||||
\n
|
\n
|
||||||
while(v>=0.0) { \n
|
|
||||||
DBG_INFO(NULL, "Handling level %d (%.2f)", nextLevel, v); \n
|
DBG_INFO(NULL, "Handling level %d (%.2f)", nextLevel, v); \n
|
||||||
if (nextLevel>=3) \n
|
if (nextLevel>=3) \n
|
||||||
break; \n
|
break; \n
|
||||||
vRun=startValue; \n
|
rv=_genLog10Ticks(st, vStart, v, vMin, vMax, nextLevel, st->precision); \n
|
||||||
while(vRun<=(st->maxValue)) { \n
|
if (rv) \n
|
||||||
if (vRun>=(st->minValue)) { \n
|
nextLevel++; \n
|
||||||
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, vRun); \n
|
|
||||||
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, nextLevel, 0, v); \n
|
|
||||||
DBG_INFO(NULL, "Adding tick %d: %s", nextLevel, GWEN_Buffer_GetStart(dbuf)); \n
|
|
||||||
GWEN_Buffer_Reset(dbuf); \n
|
|
||||||
} \n
|
|
||||||
} \n
|
|
||||||
vRun+=v; \n
|
|
||||||
} \n
|
|
||||||
v/=2.0; \n
|
v/=2.0; \n
|
||||||
if ($(struct_prefix)_HasAtLeastNLevelTicks(st, nextLevel, nextLevel?1:4)) \n
|
|
||||||
nextLevel++; \n
|
|
||||||
else \n
|
|
||||||
$(struct_prefix)_RemoveLevelTicks(st, nextLevel); \n
|
|
||||||
\n
|
\n
|
||||||
DBG_INFO(NULL, "Handling level %d (%.2f)", nextLevel, v); \n
|
|
||||||
if (nextLevel>=3) \n
|
if (nextLevel>=3) \n
|
||||||
break; \n
|
break; \n
|
||||||
vRun=startValue; \n
|
DBG_INFO(NULL, "Handling level %d (%.2f)", nextLevel, v); \n
|
||||||
while(vRun<=(st->maxValue)) { \n
|
rv=_genLog10Ticks(st, vStart, v, vMin, vMax, nextLevel, st->precision); \n
|
||||||
if (vRun>=(st->minValue)) { \n
|
if (rv) \n
|
||||||
if (!$(struct_prefix)_HasTickValue(st, vRun)) { \n
|
nextLevel++; \n
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "%.*f", st->precision, vRun); \n
|
|
||||||
$(struct_prefix)_AddNewTick(st, GWEN_Buffer_GetStart(dbuf), vRun, nextLevel, 0, v); \n
|
|
||||||
DBG_INFO(NULL, "Adding tick %d: %s", nextLevel, GWEN_Buffer_GetStart(dbuf)); \n
|
|
||||||
GWEN_Buffer_Reset(dbuf); \n
|
|
||||||
} \n
|
|
||||||
} \n
|
|
||||||
vRun+=v; \n
|
|
||||||
} \n
|
|
||||||
v/=5.0; \n
|
v/=5.0; \n
|
||||||
if ($(struct_prefix)_HasAtLeastNLevelTicks(st, nextLevel, nextLevel?1:4)) \n
|
} /* for */ \n
|
||||||
nextLevel++; \n
|
|
||||||
else \n
|
|
||||||
$(struct_prefix)_RemoveLevelTicks(st, nextLevel); \n
|
|
||||||
} /* while */ \n
|
|
||||||
GWEN_Buffer_free(dbuf); \n
|
|
||||||
} \n
|
} \n
|
||||||
</content>
|
</content>
|
||||||
</inline>
|
</inline>
|
||||||
|
|||||||
Reference in New Issue
Block a user