2D perpendicular vector

Started by
2 comments, last by bfogerty 16 years, 2 months ago
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!
Advertisement
You can just swap the x and y, and then flip the sign on one of them.
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!
Oh I see what you mean!

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


Thanks again!

This topic is closed to new replies.

Advertisement