Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash Papervision3D:移动相机时使对象保持静止_Flash_Actionscript 3_Papervision3d - Fatal编程技术网

Flash Papervision3D:移动相机时使对象保持静止

Flash Papervision3D:移动相机时使对象保持静止,flash,actionscript-3,papervision3d,Flash,Actionscript 3,Papervision3d,我想在移动相机时保持一个对象保持在原来的位置 我正在使用此脚本通过鼠标拖动来动态观察对象。但我想让场景中的一个物体保持静止。我该怎么做 谢谢, Josh好的,我浏览了Papervision中的Camera3D源代码。以下是orbit的实现: /** * Orbits the camera around the specified target. If no target is specified the * camer

我想在移动相机时保持一个对象保持在原来的位置

我正在使用此脚本通过鼠标拖动来动态观察对象。但我想让场景中的一个物体保持静止。我该怎么做

谢谢,
Josh

好的,我浏览了Papervision中的Camera3D源代码。以下是orbit的实现:

            /**
             * Orbits the camera around the specified target. If no target is specified the 
             * camera's #target property is used. If this camera's #target property equals null
             * the camera orbits the origin (0, 0, 0).
             * 
             * @param       pitch   Rotation around X=axis (looking up or down).
             * @param       yaw             Rotation around Y-axis (looking left or right).
             * @param       useDegrees      Whether to use degrees for pitch and yaw (defaults to 'true').
             * @param       target  An optional target to orbit around.
             */ 
            public override function orbit(pitch:Number, yaw:Number, useDegrees:Boolean=true, target:DisplayObject3D=null):void
            {
                    target = target || _target;
                    target = target || DisplayObject3D.ZERO;

                    if(useDegrees)
                    {
                            pitch *= (Math.PI/180);
                            yaw *= (Math.PI/180);
                    }

                    // Number3D.sub
                    var dx                  :Number = target.world.n14 - this.x;
                    var dy                  :Number = target.world.n24 - this.y;
                    var dz                  :Number = target.world.n34 - this.z;

                    // Number3D.modulo
                    var distance    :Number = Math.sqrt(dx*dx+dy*dy+dz*dz);

                    // Rotations
                    var rx :Number = Math.cos(yaw) * Math.sin(pitch);
                    var rz :Number = Math.sin(yaw) * Math.sin(pitch);
                    var ry :Number = Math.cos(pitch);

                    // Move to specified location
                    this.x = target.world.n14 + (rx * distance);
                    this.y = target.world.n24 + (ry * distance);
                    this.z = target.world.n34 + (rz * distance);

                    this.lookAt(target);
            }
您可以将其作为要保持静止的对象的辅助函数来实现。我相信这个函数中唯一涉及相机特定的代码是lookAt()函数


然后,您可以将其添加到mouseMove处理程序中的camera.orbit()之前,它应该与您的相机保持静止。

静止是什么意思?当你的视野发生变化时,你想让物体保持在你视野中的同一位置吗?@CookieofFault-是的,没错。