[vtkusers] Another question on vtkLookupTable..!
rakesh patil
prakeshofficial at gmail.com
Tue Feb 22 02:58:54 EST 2011
Hey David,
Thanks for that explanation. Now it's bit clear about how lookup table
works. But in my case, I guess, binsize is not uniform. Let me put it in
this form
10 ==== (1.0, 0.0, 0.0)
20 ==== (1.0, 0.5, 0.0)
30 ==== (1.0, 1.0, 0.0)
40 ==== (0.5, 1.0, 0.0)
50 ==== (0.0, 1.0, 0.0)
60 ==== (0.0, 1.0, 0.5)
80 ==== (0.0, 1.0, 1.0)
100 ==== (0.0, 0.5, 1.0)
200 ==== (0.0, 0.0, 1.0)
in this case, bin size is not equal to (max-min)/n. I mean, lookup table
might calculate it like that. But If dont want in that way, then what
changes I have to do to implement? May be I am wrong in understanding the
meaning of binsize. Please correct me if I'm wrong.
Thanks
Regards
Rakesh Patil
On Tue, Feb 22, 2011 at 11:58 AM, David Gobbi <david.gobbi at gmail.com> wrote:
> Hi Rakesh,
>
> The way that the lookup table maps values to colors is as follows:
> If the Range of the table is set to [min,max] and the number of colors
> in the table is n, then the equation that maps a value "v" to an
> index "i" is:
>
> i = floor((v - min)*n/(max - min))
>
> The bin size is uniform and equal to (max - min)/n. Values in the
> range [min, min + binsize] go into the first bin (and values less than
> min also go into the first bin).
>
> Since the bins are uniform in size, you will need a table with 20 values
> and a binsize of 10, and some of the colors will have to be repeated.
> Use lut->SetTableRange(0.5, 200.5), where the ".5" is for rounding.
>
> - David
>
>
> On Mon, Feb 21, 2011 at 10:35 PM, rakesh patil
> <prakeshofficial at gmail.com> wrote:
> > Hello,
> >
> > I have to display contours, for a given range, by mapping values to
> colours.
> > i.e. Consider I need to display contours between 1 and 200.
> >
> > I use the lookuptable as follows
> >
> > vtkSmartPointer<vtkLookupTable> lut =
> > vtkSmartPointer<vtkLookupTable>::New();
> > lut->SetNumberOfTableValues(9);
> > lut->SetTableValue(0, 1.00, 0.00, 0.00);
> > lut->SetTableValue(1, 1.00, 0.50, 0.00);
> > lut->SetTableValue(2, 1.00, 1.00, 0.00);
> > lut->SetTableValue(3, 0.50, 1.00, 0.00);
> > lut->SetTableValue(4, 0.00, 1.00, 0.00);
> > lut->SetTableValue(5, 0.00, 1.00, 0.50);
> > lut->SetTableValue(6, 0.00, 1.00, 1.00);
> > lut->SetTableValue(7, 0.00, 0.50, 1.00);
> > lut->SetTableValue(8, 0.00, 0.00, 1.00);
> > lut->Build();
> > Now suppose I want the output like show below
> >
> > 01 - 10 ==== (1.0, 0.0, 0.0)
> > 11 - 20 ==== (1.0, 0.5, 0.0)
> > 21 - 30 ==== (1.0, 1.0, 0.0)
> > 31 - 40 ==== (0.5, 1.0, 0.0)
> > 41 - 50 ==== (0.0, 1.0, 0.0)
> > 51 - 60 ==== (0.0, 1.0, 0.5)
> > 61 - 80 ==== (0.0, 1.0, 1.0)
> > 81 - 100 ==== (0.0, 0.5, 1.0)
> > 101 - 200 ==== (0.0, 0.0, 1.0)
> >
> > How can this be done.?? So that the values supplied should be mapped to
> the
> > corresponding colour and should be displayed.
> >
> > Thanks
> >
> > Regards
> > Rakesh Patil
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110222/b09aa1fb/attachment.htm>
More information about the vtkusers
mailing list