Esempio n. 1
0
        public void pan_lr(double amount)
        {
            // move cen to the left
            Vector v = up.Cross(eye - cen);

            v.normalize();
            amount = 0.001 * amount * _r;
            cen.x += amount * v.x;
            cen.y += amount * v.y;
            cen.z += amount * v.z;
            recalc();
        }
Esempio n. 2
0
        private void recalc()
        {
            // recalculate eye position
            eye.x = cen.x + _r * Math.Cos(_theta) * Math.Sin(_fi);
            eye.y = cen.y + _r * Math.Sin(_theta) * Math.Sin(_fi);
            eye.z = cen.z + _r * Math.Cos(_fi);

            // recalculate up-vector
            Vector n = new Vector(Math.Sin(_theta), -Math.Cos(_theta), 0);

            up = n.Cross(eye - cen);
            up.normalize();
            // System.Console.WriteLine("Camera: cen=" + cen + " eye=" + eye);
        }