 Don't ask to ask, just ask PerlMonks

### Re: Re: 3D Point Plotting

 on May 28, 2002 at 21:52 UTC ( #169921=note: print w/replies, xml ) Need Help??

in reply to Re: 3D Point Plotting

rbc, thanks, but that script works with Tk... which isn't really applicable in the context of CGI, as far as I know... gnuplot looks like it might do the trick, but I'll have to play around with it a bit more. And as to your suggestion, Merlin42, very interesting but a bit beyond me, for now (still interested though). I figure I might as well explain the point of all this anyways: I'm going to be having as data a large number of RGB values, and am trying to plot them all in a 3d cubic space, so one can visually see clustering of the colors. For now I'll try gnuplot some more, but any other suggestions would be great. Thanks.

Replies are listed 'Best First'.
Re: Re: Re: 3D Point Plotting
by Merlin42 (Friar) on May 29, 2002 at 14:05 UTC
Ok first I want to apoligize for my previous post ... the formulas are fscked up. Rather than try to fix them for the general case Ill give you a simple version that will work for your specific case.
for each point R,G,B contained in (0,1)x(0,1)x(0,1):
```X=(R-0.5)/(B+1)*IMAGE_WIDTH  + IMAGE_WIDTH/2
Y=(G-0.5)/(B+1)*IMAGE_HEIGHT + IMAGE_HEIGHT/2
```
You can change the 1 to 'dolly' the camera back and forth. Just swap the variables to view along a different color axis.
To view not along a color axis you need to rotate the points before hand. eg
```R'= R*cos(theta)+G*sin(theta)
G'=-R*sin(theta)+G*cos(theta)
B'= B
```
to rotate about the B axis
```R'= R
G'= G*cos(theta)+B*sin(theta)
B'=-G*sin(theta)+B*cos(theta)
```
to rotate about the R axis, and
```R'=R*cos(theta)-B*sin(theta)
G'=G
B'=R*sin(theta)+B*cos(theta)
```
to rotate about the G axis

Geez I can't get anything right...maybe this really isnt as simple as I said :). The formulas should now map the entire RGB space into the image ... if you rotate the space then the corners will not be visible ... fix this by increasing the value added to the denomiator.
Thank you very much for all this; I'll get to experimenting with it after exams are over, and most likely post what happens. (and the name, it's still me, I just decided to register)

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://169921]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2023-01-31 10:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?