summaryrefslogtreecommitdiff
path: root/Master/texmf/asymptote/palette.asy
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-29 14:00:37 +0000
committerKarl Berry <karl@freefriends.org>2009-09-29 14:00:37 +0000
commit93b70a6b5bf985b86b936248e34c810edfb1ebcb (patch)
treee3aef4bed05158dc1a5cdd4178fc531bdf4f04b3 /Master/texmf/asymptote/palette.asy
parentd80f6a20d7b907ac933f687a7a0f1fd100a219f8 (diff)
asy 1.87
git-svn-id: svn://tug.org/texlive/trunk@15555 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf/asymptote/palette.asy')
-rw-r--r--Master/texmf/asymptote/palette.asy22
1 files changed, 13 insertions, 9 deletions
diff --git a/Master/texmf/asymptote/palette.asy b/Master/texmf/asymptote/palette.asy
index e9d3fb921db..fabbdc2cd5b 100644
--- a/Master/texmf/asymptote/palette.asy
+++ b/Master/texmf/asymptote/palette.asy
@@ -45,15 +45,19 @@ pen[] adjust(picture pic, real min, real max, real rmin, real rmax,
{
real dmin=pic.scale.z.T(min);
real dmax=pic.scale.z.T(max);
- int minindex=floor((dmin-rmin)/(rmax-rmin)*palette.length);
- if(minindex < 0) minindex=0;
- int maxindex=floor((dmax-rmin)/(rmax-rmin)*palette.length);
- if(maxindex > palette.length) maxindex=palette.length;
- if(minindex > 0 || maxindex < palette.length) {
- pen[] newpalette;
- for(int i=minindex; i < maxindex; ++i)
- newpalette.push(palette[i]);
- return newpalette;
+ real delta=rmax-rmin;
+ if(delta > 0) {
+ real factor=palette.length/delta;
+ int minindex=floor(factor*(dmin-rmin));
+ if(minindex < 0) minindex=0;
+ int maxindex=floor(factor*(dmax-rmin));
+ if(maxindex > palette.length) maxindex=palette.length;
+ if(minindex > 0 || maxindex < palette.length) {
+ pen[] newpalette;
+ for(int i=minindex; i < maxindex; ++i)
+ newpalette.push(palette[i]);
+ return newpalette;
+ }
}
return palette;
}