On Sat, Jan 03, 2004 at 10:32:30PM -0500, David OBrien wrote:
> graphing memory usage.. But can someone write a CDEF that would
> show how to place the larger value behind the smaller value in a
> non-stack situation like this...
Algoritm:
if (x > y) {
area(color1) x
area(color2) y
} else {
area(color2) y
area(color1) x
}
This cannot be done directly as you cannot use IF to draw areas or not.
The IF function *can* be used to set variables.
Rewrite:
if (x>y) {
x1=x
x2=UNKN
} else {
x1=UNKN
x2=x
}
area(color1) x1
area(color2) y
area(color1) x2
Now we have a situation where the first area is drawn when x is larger
than y, the second area is always drawn and the third is drawn when x
is not larger than y.
This is what you were looking for. Note that the values can be equal,
still hiding one after another.
In CDEF there's no grouping of commands. Rewrite again:
if (x>y) x1=x else x1=UNKN
if (x>y) x2=UNKN else x2=x
area(color1) x1
area(color2) y
area(color1) x2
Convert to RPN:
if (x>y) then p else q ==> (x>y)?p:q ==> x,y,GT,p,q,IF
CDEF:x1=x,y,GT,x,UNKN,IF
CDEF:x2=x,y,GT,UNKN,x,IF
AREA:x1#00CC00:x
AREA:y#0000FF:y
AREA:x2#00CC00
The labels reflect the original variables, not the intermediate.
The third AREA needs no label as it is already shown the first time.
HTH
Alex
--
begin sig
http://www.googlism.com/index.htm?ism=alex+van+den+bogaerdt&type=1
This message was produced without any <iframe tags
--
Unsubscribe mailto:[EMAIL PROTECTED]
Help mailto:[EMAIL PROTECTED]
Archive http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin http://www.ee.ethz.ch/~slist/lsg2.cgi