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

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • CentreCorp is a fully integrated and diversified property management and real estate service company, specializing in the "shopping center" segment, and is one of the premier retail service providers in North America. Company executives travel a great deal, carrying a number of traveling laptops with critical current business data, and no easy way to back up to the network outside the office. Read this case study to learn how CentreCorp implemented a suite of business continuity services that included …

Most Popular Programming Stories

More for Developers

RSS Feeds