Creating a 360 GUI knob

I need to create a GUI to control the direction in which an arrow is facing. The obvious control is the Knob, which conveys direction visually. EXCEPT that the Knob (at least as far as I can tell) has a fixed range from about -160 degrees to +160 degrees (with 0 being vertical). Which leaves me with two options:
Use the range -160 to +160 to allow the user to specify -180 to +180, which has the horrible effect that dial angle and arrow angle are not the same
Use the range -160 to +160 to allow the user to specify -160 to +160, which means my dial angle and my arrow angle are the same but has the horrible effect that the user can never point the arrow straight down!
What I really need is a control that just spins and returns the angle it's pointing at, but short of that is there a way to get the Knob to behave as I need?

5 commentaires

Caglar
Caglar le 2 Nov 2018
Documentation does not show a way to change knob design. You can use gauges and edit data in another way (like + - buttons) or you can use discrete knob.
Lane
Lane le 2 Nov 2018
Unfortunately, the discrete knob has the same restriction on angles. It looks like I am going to have to use a slider, which is too bad because a knob is the perfect visual control for angle.
Caglar
Caglar le 2 Nov 2018
Modifié(e) : Caglar le 2 Nov 2018
There is no direct solution for a full-knob even in Undocumented Secrets of Matlab-Java Programming book.
Walter Roberson
Walter Roberson le 2 Nov 2018
Though you could probably pull in a package such as https://github.com/sojamo/controlp5/blob/master/src/controlP5/Knob.java and put the knob into a JPanel, perhaps using hints from https://undocumentedmatlab.com/blog/customizing-matlab-uipanels
Lane
Lane le 2 Nov 2018
Modifié(e) : Lane le 2 Nov 2018
Thanks! If the quick-and-dirty tool I am building becomes a workhorse, I may go back and try some customization. For now I'm just going to put in an unintuitive slider and an accompanying figure that shows orientation.

Connectez-vous pour commenter.

Réponses (0)

Produits

Version

R2018b

Question posée :

le 2 Nov 2018

Modifié(e) :

le 2 Nov 2018

Community Treasure Hunt

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

Start Hunting!

Translated by