Problems with plotting multiple objects over each other
4 ビュー (過去 30 日間)
古いコメントを表示
I'm using the rectangle function to fill in a circle located at the center point (x,y) of a grid square and width and weigth (1,1) with curvature (1,1)...in other words a circle that touches the bounds of a grid square. This happens whenever I left click on the plot. I want to be able to right click in a grid square a have the filled in circle erase. For some reason Matlab won't overlay rectangles with the same center point. I was hoping to use the rectangle function again but with a black color (since my background is black). Once I get this part working, I want to extend it to replace any circle I click on with another circle of a different color I've picked already. Is there work around that I could use?
2 件のコメント
Jan
2013 年 3 月 21 日
I do not understand the question. What does this mean: "have the filled in circle erase"? Or "For some reason Matlab won't overlay rectangles with the same center point."?
回答 (2 件)
Wouter
2013 年 3 月 21 日
You could try to edit the renderer of the figure window:
set(gcf,'renderer','opengl') % changes the renderer of the current fig to opengl
set(gcf,'renderer','painters') %changes the renderer to painters
set(gcf,'renderer','zbuffer') %changes the renderer to buffer
A different renderer might be able to get rid of your visualisation problems.
Image Analyst
2013 年 3 月 22 日
When you call rectangle, store the handle of it in a 6 by 6 array at the location of the circle in the grid. Then when you have to change the color, delete the handle before drawing the new one.
% Draw.
handleArray(row, column) = rectangle(.....
When it comes time to draw a new circle of a different color:
% Erase that handle to clear the circle.
delete(handleArray(row, column));
% Draw new circle at that location.
handleArray(row, column) = rectangle(.....
2 件のコメント
参考
カテゴリ
Help Center および File Exchange で Graphics Object Properties についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!