I'm trying to plot data in polar coordinates mapped to RGB data.
Using a standard xy axis this is trivial, but I can't seem to plot a mesh grid with RGB triplets in the same way. Below is a working example. Figure 1 displays the data in a Cartesian grid (theta vs. rho), with the color axis represented by RGB triplets.
Figure 2 displays the meshgrid following the polar to Cartesian grid transformation – but I have only plotted the intensity of the red (R) value.
Please could somebody advise on the line of script that will allow me to plot the semi-circle shown (Figure 2) with RGB values, not intensity as in the example.
Thanks in advance.
%
clear all; close all;theta = linspace(0,pi,18);rho = linspace(0,pi/2,9);C(:,:,1) = rand(numel(theta),numel(rho));C(:,1,1) = 0.5;C(:,:,2) = rand(numel(theta),numel(rho));C(:,1,2) = 0.5;C(:,:,3) = rand(numel(theta),numel(rho));C(:,1,3) = 0.5;figure(1)imagesc(theta,rho,C)xlabel('theta');ylabel('rho');[TH,R] = meshgrid(theta,rho);[X,Y] = pol2cart(TH,R);figure(2)surf(X,Y,C(:,:,1)') % this is only the values of the R triplet
xlim([-pi/2 pi/2]);ylim([-pi/2 pi/2]);axis squareview(0, 90)
Best Answer