Skip to main content
gamedev.net
🔒 Locked

2D perpendicular vector

Started by bfogerty Jan 29, 2008 at 11:06 AM 2 replies 6.5k views
Original Post
bfogerty
bfogerty
Hello. I am writing a generic Matrix / Vector library for the C# language. I am not especially great at math and that is partly why I am doing this as an exercise. One of the methods I would like is to calculate the 2D perpendicular vector to another. I wrote the following code which seems to do that just fine.

        public Vector3D getPrependicular()
        {
            float mx = this.Y / this.X;
            mx = -1 / mx;

            float y = (this.X * mx);

            return new Vector3D(this.X, y, 1);
        }
However when I draw the perpendicular vector, although the angle is 90 degrees, its distance is scaled drastically. I would like the length of the perendicular vector to be that of the original vector. How would I go about doing that? Thanks in advance!
SiCrane
SiCrane
You can just swap the x and y, and then flip the sign on one of them.
bfogerty
bfogerty
I believe I did that

            float mx = this.Y / this.X;            mx = -1 / mx;


What I need to know is how to scale my perpendicular vector back to the size of the original vector.

Thanks!
bfogerty
bfogerty
Oh I see what you mean!

        public Vector3D getPrependicular()        {            return new Vector3D(this.Y, -this.X, 1);        }


Thanks again!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.