示例#1
0
        public override Point World2Screen(ILPoint3Df world, double[] modelview)
        {
            Vector3 w = new Vector3(world.X, world.Y, world.Z);
            Vector3 screen;

            Glu.Project(w, modelview, m_projMatrix, m_viewMatrix, out screen);
            return(new Point((int)screen.X, (int)(ClientSize.Height - screen.Y)));
        }
示例#2
0
        /// <summary>
        /// Transform 2 world coordinates into screen coords under current matrices
        /// </summary>
        /// <param name="p1_3D">world coord point 1</param>
        /// <param name="p2_3D">world coord point 2</param>
        /// <param name="p1_2D">(output) screen coord point 1</param>
        /// <param name="p2_2D">(output) screen coord point 2</param>
        public override void World2Screen(ILPoint3Df p1_3D, ILPoint3Df p2_3D, out Point p1_2D, out Point p2_2D)
        {
            Vector3 s = new Vector3();
            Vector3 e = new Vector3();

            Glu.Project(new Vector3(p1_3D.X, p1_3D.Y, p1_3D.Z),
                        m_modelViewMatrix, m_projMatrix, m_viewMatrix, out s);
            Glu.Project(new Vector3(p2_3D.X, p2_3D.Y, p2_3D.Z),
                        m_modelViewMatrix, m_projMatrix, m_viewMatrix, out e);
            p1_2D = new Point((int)s.X, (int)(ClientSize.Height - s.Y));
            p2_2D = new Point((int)e.X, (int)(ClientSize.Height - e.Y));
        }