
Angle Determination?
I have a grid that I've set up.. with a starting point (x,y) and a secondary
point (x2, y2), and I want to determine a compass direction (just the basic
8 directions).
How do you determine an angle in VB given the reference point and target
point?

Re: Angle Determination?
This gives you the angle in degree around 0
Function Angle(X As Single, Y As Single) As Integer
Dim Gradient As Double
If X = 0 Then X = 1
Gradient = Y / X
If (X < 0) Then
Angle = 270 + (Atn(Gradient) * (180 / 3.14159265358979))
Else
Angle = 90 + (Atn(Gradient) * (180 / 3.14159265358979))
End If
Do While Angle > 359
Angle = Angle  360
Loop
End Function
to use X1 and X2, try:
Angle (X2  X1, Y2  Y1)

Dean Earley (dean.earley@icode.co.uk)
Assistant Developer
iCode Systems
"jerek" <vztwins@usa.net> wrote in message news:3bd6fc71$1@news.devx.com...
>
> I have a grid that I've set up.. with a starting point (x,y) and a secondary
> point (x2, y2), and I want to determine a compass direction (just the basic
> 8 directions).
>
> How do you determine an angle in VB given the reference point and target
> point?

Re: Angle Determination?
Dean,
>
Do While Angle > 359
Angle = Angle  360
Loop
>
Something wrong with Angle = Angle Mod 360? ;)

Anthony Jones
Nuesoft Ltd

Re: Angle Determination?
"Anthony Jones" <yadayadayada@msn.com> wrote in message news:3bd918c0$1@news.devx.com...
> Dean,
>
> >
> Do While Angle > 359
> Angle = Angle  360
> Loop
> >
>
> Something wrong with Angle = Angle Mod 360? ;)
>
Doh!
I haven't used this for about a year, I dug it out of my archive )
I was using it in a Palm graffitti emulater.

Dean Earley (dean.earley@icode.co.uk)
Assistant Developer
iCode Systems

Re: Angle Determination?
Anthony Jones wrote:
>
> Dean,
>
> >
> Do While Angle > 359
> Angle = Angle  360
> Loop
> >
>
> Something wrong with Angle = Angle Mod 360? ;)
....and just look what happens to 359.001!
Bob

Seems to me we went through the whole copyprotection thing decades ago,
and smart folks realized it can only hurt the customer.

Re: Angle Determination?
"Bob O`Bob" <bob@cluestick.org> wrote in message news:3BDCB047.3D7A@cluestick.org...
> Anthony Jones wrote:
> >
> > Dean,
> >
> > >
> > Do While Angle > 359
> > Angle = Angle  360
> > Loop
> > >
> >
> > Something wrong with Angle = Angle Mod 360? ;)
>
>
> ...and just look what happens to 359.001!
>
>
Function Angle(X As Single, Y As Single) As INTEGER
but if you want to be perfect ) ...
Do While Angle => 360
Angle = Angle  360
Loop

Dean Earley (dean.earley@icode.co.uk)
Assistant Developer
iCode Systems
Posting Permissions
 You may not post new threads
 You may not post replies
 You may not post attachments
 You may not edit your posts

Forum Rules

Development Centers
 Android Development Center
 Cloud Development Project Center
 HTML5 Development Center
 Windows Mobile Development Center
