Example #1
0
        public static Vector2 Transform2d(this Matrix44 matrix, Vector2 from)
        {
            var transformed = new Vector2();

            transformed.X = from.X * matrix.M00 +
                            //from.Y * matrix.M10 +
                            from.Y * matrix.M20
                            //+
                            //matrix.M30
            ;

            transformed.Y = from.X * matrix.M02 +
                            //from.Y * matrix.M12 +
                            from.Y * matrix.M22
                            //+
                            //matrix.M32
            ;

            return(transformed);
        }
Example #2
0
        /// <summary>
        /// makes a donut thing...
        /// </summary>
        /// <param name="inner"></param>
        /// <param name="outer"></param>
        /// <param name="N"></param>
        /// <returns></returns>
        public Vector2[] Torus(float inner, float outer, int N = 100)
        {
            List <Vector2> list  = new List <Vector2>();
            List <Vector2> listb = new List <Vector2>();

            const double twopi = Math.PI * 2f;

            var     pos = 0f;
            Vector2 item;

            do
            {
                item = new Vector2((float)Math.Cos(twopi * pos / N), (float)-Math.Sin(twopi * pos / N)) * inner;
                list.Add(item);

                item = new Vector2((float)Math.Cos(twopi * pos / N), (float)-Math.Sin(twopi * pos / N)) * outer;
                listb.Add(item);

                pos++;
            } while (pos < N);

            return(list.Concat(listb).ToArray());
        }