How to reflect a graph
    11 views (last 30 days)
  
       Show older comments
    
    JDilla
 on 11 Mar 2015
  
    
    
    
    
    Answered: Deeptanu Datta
 on 18 Dec 2019
             I am trying to reflect the graph closest to the origin. The reflection should start where the graph ends. I have not achieved this. Please see figure1. Any ideas? much appreciated
for n = 1:5;
    v = v(n);
    i;  
    d=z1/cosd(i);                   %calculate diagonal distance
    h(n)=z1*sind(i);                 %calculate horizontal distance
    t(n) = d/v;
    v = [3:7];
    depth(n)=z1
    sini = ((sind(i)*(v+1))/v);
    i= asind(sini)
    z1=z1+2;
end 
N=cumsum(h); 
plot(h,depth)
hold on
grid on
B=cumsum(h)+N(:,end)
C=flip(depth)
plot(B,C)
axis ij

3 Comments
Accepted Answer
  Michael Haderlein
      
 on 11 Mar 2015
        I guess you want something like this:
 >> x=1:10;y=x.^2.*rand(size(x));
 >> figure, plot(x,y), hold all
 >> reflectionx=8;
 >> plot(2*reflectionx-x,y)
3 Comments
  Michael Haderlein
      
 on 11 Mar 2015
				same color -> use "hold on" instead of "hold all" or set the color explicitly (see the plot documentation)
reflection point -> "reflectionx=x(end);" in case that x is monotonically increasing or "reflectionx=max(x);" in case that the order of x is arbitrary.
implement into your own code -> I don't fully understand your code but I see you have two plots. Also I don't know which of them you want to reflect, but in both cases you have x-values and y-values ((h,depth) resp. (B,C)). In case you want to reflect the first one, use my code and replace x with h and y with depth. Same procedure with the second plot, respectively.
More Answers (1)
  Deeptanu Datta
 on 18 Dec 2019
        How to take mirror image of a plot about the straight line y=-x ?
0 Comments
See Also
Categories
				Find more on 2-D and 3-D Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!