Compass Control

Environment: Compiled using VC6.0 Sp3 and tested using Win95/98 WinNT4.0 and Win 2000

This article introduces a simple "cylinder" type of compass control based from CStatic. This will allow the control to be used within a dialog using the MFC Class Wizard Dialog or as a static control within a window.

The compass project is a simple dialog based project incorporating the compass control. To illustrate the dynamics of the control, a Proportional, Integer, Derivative Control (PID control) algorithm has been implemented to command the compass control to a user specified heading. This gives the affect of a turning compass.

The compass control is easy to use and has two member functions to control the compass.

Use

From a Dialog

Before you begin, make sure that the compass control class is registered in the Class Wizard database.

  1. In a dialog, inset a picture control.
  2. Set the picture ID.
  3. Create a member variable using the Class Wizard Dialog. Make sure that the category is Control and that Variable Type is CCompass.

CCompass::SetPos

UINT SetPos( int nPos )

Return Value

Returns the previous heading.

Parameters

nPos

    Heading to set compass to. Any values are valid. If the position is less than 0 or greater than 360, then compass will reflect their reference angles.

Remarks

Use the SetPos method to set the compass heading. Normal compass headings range form 0 to 360 degrees. Other values greater than 360 or less than 0 degrees may be used. The compass control will reflect the reference angle.

CCompass::SetTicAlign

void SetTicAlign( WORD wAlign )

Parameters

wAlign

    Sets the tic alignment. Where:

    COMPASS_TIC_TOP - Aligns tics along top of compass

    COMPASS_TIC_BOTTOM - Aligns tics along the bottom of compass

    COMPASS_TIC_BOTH - Aligns tics on top and bottom of compass

Remarks

Use SetTicAlign to setup the alignment of degree tics on the compass.

Downloads

Download demo project - 41 Kb
Download source - 2 Kb


Comments

  • What would be the feedback signal in a control loop?

    Posted by Legacy on 02/26/2003 12:00am

    Originally posted by: Rohit

    The algo is very fine but my question is what would be the feedback signal in a control loop? dDelta or what?

    Reply
  • Could you help me?

    Posted by Legacy on 02/11/2003 12:00am

    Originally posted by: Tom

    I am a beginner in the field of control. I want the seperate control algo for PI,PD and only P. It will be If you send the flow chart which you have developed.
    
    One more question, whether it will be applicable to the control system where the value is randomly changing.

    Reply
  • Nice

    Posted by Legacy on 12/22/2002 12:00am

    Originally posted by: Gordon Tomlinson

    Very nice, I work with 3D stuff all the time and asking for a heading, pitch and roll is much nicer with this. Great Job

    Reply
  • Nice project, can you help me with some questions?

    Posted by Legacy on 05/18/2000 12:00am

    Originally posted by: jerry

    very nice project...
    would you know how to start a pitch ladder control?...
    or how I would start a circular compass.
    i am very interested in control design, but am a beginner and am not sure were to find information
    i have been told that some controls are designed as active
    x and incorporate opengl code.
    hope to hear from you soon.
    jerry

    Reply
  • Nice control .. how can I add mouse support to drag the compass

    Posted by Legacy on 02/04/2000 12:00am

    Originally posted by: Steve Cullum

    I like this very much, but I cannot figure out how to drag the compass.

    Can anyone give me some direction!!

    PS. Does anyone know where I can get my hands on other GIS/Aeronautical instrument controls

    Thanks!!

    Reply
  • Why a compass control?

    Posted by Legacy on 02/04/2000 12:00am

    Originally posted by: Wim Wouters

    Maybe a stupid question, but why do you need a compass control. It looks cool but I don't understand the use.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Are you truly leading your team or simply managing them? Organizations need leaders and your team needs someone to follow. With some ongoing development, you could become that leader. Learn the top leadership qualities that inspire others to want to follow you and the direction of your company.

  • The 3rd Platform of computing, based around the four pillars of mobile computing, social media, big data and analytics, and cloud, is redefining what IT infrastructure needs to provide. Endpoint solutions must meet not only traditional data protection requirements, but also a new set of requirements driven by the explosion in mobile computing. This IDC white paper explores the customer challenges associated with safeguarding data residing on various endpoint devices, including laptops, tablets, and …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date