Zooming into lines to access context menu

2 ビュー (過去 30 日間)
Mehrdad Sheikholeslami
Mehrdad Sheikholeslami 2017 年 2 月 6 日
コメント済み: Jan 2017 年 2 月 9 日
Hi,
I am developing a GUI in which a context menu is assigned to each line drawn by "plot" command. One thing that needs improvement is that there are many lines and right clicking on them needs precision. Therefore, I provided a zoom capability. The problem is when I zoom, it has no effect on the width of the line and it stays as thin as before no matter how many times you zoom in. I tried to change the width of the lines, but seems like the handle is not assigned to the width of the line. Do you have any suggestions that zooming can make it easier to right click on lines?
Thanks, Mehrdad

採用された回答

Jan
Jan 2017 年 2 月 9 日
編集済み: Jan 2017 年 2 月 9 日
If the lines conceal eachother, increasing the linewidth (or the width susceptible for detecting a right-click) will not help. In opposite, it will increase the problem.
You could move the context menu to a kind of legend. See:
I'm using a tool, which determines the nearest line, when I click in an axes. Then this line is highlighted and the space key selects the next line. Finally the right-click opens the context menu of the axes, wich is adjusted dynamically, such that it looks like it is the context menu of the selected line.
  2 件のコメント
Mehrdad Sheikholeslami
Mehrdad Sheikholeslami 2017 年 2 月 9 日
Thank you so much, this seems like a very good alternative and I will definitely try this. In my case, the lines are not concealing each other and I'm looking for a way to increase the width susceptible for detecting a right click. So far I know for sure set(h,'LineWidth','number') does not provide this feature. Do you know a way to change the width susceptible for detecting a right-click?
Jan
Jan 2017 年 2 月 9 日
You can use patch objects instead of line, which increases the visible and susceptible area. And as said before: You can catch the right click in the axes, determine the nearest line and set its ContextMenu to 'Visible' -> 'on' programmatically.

サインインしてコメントする。

その他の回答 (1 件)

Ankitha Kollegal Arjun
Ankitha Kollegal Arjun 2017 年 2 月 9 日
A suggestion on modifying the width of individual lines in a plot:
You can create a handle to the plot command and then access each line individually and modify its LineWidth property. Consider the following example:
x1 = 1:10;
y1 = x1;
y2 = x1.^2;
h = plot(x1,y1,x1,y2);
set(h(1),'LineWidth',5);
set(h(2),'LineWidth',10);
  1 件のコメント
Mehrdad Sheikholeslami
Mehrdad Sheikholeslami 2017 年 2 月 9 日
Thank you for the answer. I had already tried that and as I mentioned, the area that you can right click on a line for the context menu doesn't get bigger with increasing the line width.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeData Exploration についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by