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 Comments

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.
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 on 2 Nov 2018
Edited: Caglar on 2 Nov 2018
There is no direct solution for a full-knob even in Undocumented Secrets of Matlab-Java Programming book.
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 on 2 Nov 2018
Edited: Lane on 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.

Sign in to comment.

Answers (0)

Products

Release

R2018b

Asked:

on 2 Nov 2018

Edited:

on 2 Nov 2018

Community Treasure Hunt

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

Start Hunting!