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 Commenti

Caglar
Caglar il 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 il 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 il 2 Nov 2018
Modificato: Caglar il 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 il 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 il 2 Nov 2018
Modificato: Lane il 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.

Accedi per commentare.

Risposte (0)

Prodotti

Release

R2018b

Richiesto:

il 2 Nov 2018

Modificato:

il 2 Nov 2018

Community Treasure Hunt

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

Start Hunting!

Translated by