123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- <!DOCTYPE html>
- <html lang="zh">
- <head>
- <meta charset="utf-8" />
- <base href="../../../" />
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body>
- [page:Controls] →
- <h1>轨迹球控制器([name])</h1>
- <p class="desc">
- <p>
- [name] 与 [page:OrbitControls] 相类似。然而,它不能恒定保持摄像机的[page:Object3D.up up]向量。
- 这意味着,如果摄像机绕过“北极”和“南极”,则不会翻转以保持“右侧朝上”。
- </p>
- </p>
- <h2>导入</h2>
- <p>
- [name] 是一个附加组件,必须显式导入。
- See [link:#manual/introduction/Installation Installation / Addons].
- </p>
- <code>
- import { TrackballControls } from 'three/addons/controls/TrackballControls.js';
- </code>
- <h2>例子</h2>
- <p>[example:misc_controls_trackball misc / controls / trackball ]</p>
- <h2>构造函数</h2>
- <h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
- <p>
- <p>
- [page:Camera camera]: 渲染场景的摄像机。
- </p>
- <p>
- [page:HTMLDOMElement domElement]: 用于事件监听的HTML元素。(可选)
- </p>
- <p>
- 创建一个新的 [name] 实例。
- </p>
- </p>
- <h2>事件</h2>
- <h3>change</h3>
- <p>
- 当摄像机被控制器变换后触发。
- </p>
- <h3>start</h3>
- <p>
- 当交互(例如触摸)被初始化后触发。
- </p>
- <h3>end</h3>
- <p>
- 当交互完成后触发。
- </p>
- <h2>属性</h2>
- <p>共有属性请参见其基类[page:Controls]。</p>
- <h3>[property:Number dynamicDampingFactor]</h3>
- <p>
- 设置阻尼的强度。仅在[page:.staticMoving staticMoving]设为*false*时考虑。默认为*0.2*。
- </p>
- <h3>[property:Array keys]</h3>
- <p>
- 该数组包含用于控制交互的按键代码。
- <ul>
- <li>当定义的第一个按键按下后,所有的鼠标交互(左/中/右键)表现为环绕。</li>
- <li>当定义的第二个按键按下后,所有的鼠标交互(左/中/右键)表现为缩放。</li>
- <li>当定义的第三个按键按下后,所有的鼠标交互(左/中/右键)表现为平移。</li>
- </ul>
- 默认为*KeyA, KeyS, KeyD*,分别表示A, S, D。
- </p>
- <h3>[property:Number maxDistance]</h3>
- <p>
- 你能够将相机向外移动多少(仅适用于[page:PerspectiveCamera]),其默认值为*Infinity*。
- </p>
- <h3>[property:Number minDistance]</h3>
- <p>
- 你能够将相机向内移动多少(仅适用于[page:PerspectiveCamera]),其默认值为*0*。
- </p>
- <h3>[property:Float maxZoom]</h3>
- <p>
- 你能够将相机缩小多少(仅适用于[page:OrthographicCamera]),其默认值为*Infinity*。
- </p>
- <h3>[property:Float minZoom]</h3>
- <p>
- 你能够将相机放大多少(仅适用于[page:OrthographicCamera]),其默认值为*0*。
- </p>
- <h3>
- [property:Object mouseButtons]</h3>
- <p>
- 该对象包含由控件所使用的鼠标操作的引用。
- <ul>
- <li>.LEFT 指定给 *THREE.MOUSE.ROTATE*</li>
- <li>.MIDDLE 指定给 *THREE.MOUSE.ZOOM*</li>
- <li>.RIGHT 指定给 *THREE.MOUSE.PAN*</li>
- </ul>
- </p>
- <h3>[property:Boolean noPan]</h3>
- <p>
- 是否禁用平移,默认为*false*。
- </p>
- <h3>[property:Boolean noRotate]</h3>
- <p>
- 是否禁用旋转,默认为*false*。
- </p>
- <h3>[property:Boolean noZoom]</h3>
- <p>
- 是否禁用缩放,默认为*false*。
- </p>
- <h3>[property:Number panSpeed]</h3>
- <p>
- 平移的速度,其默认值为*0.3*。
- </p>
- <h3>[property:Number rotateSpeed]</h3>
- <p>
- 旋转的速度,其默认值为*1.0*。
- </p>
- <h3>[property:Object screen]</h3>
- <p>
- 表示屏幕的属性。在[page:.handleResize handleResize]()被调用时会自动设置。
- <ul>
- <li>left: 表示到屏幕左侧边界的偏移量(单位为像素)。</li>
- <li>top: 表示到屏幕顶部边界的偏移量(单位为像素)。</li>
- <li>width: 表示屏幕的宽度(单位为像素)。</li>
- <li>height: 表示屏幕的高度(单位为像素)。</li>
- </ul>
- </p>
- <h3>[property:Boolean staticMoving]</h3>
- <p>
- 阻尼是否被禁用。默认为*false*。
- </p>
- <h3>[property:Vector3 target]</h3>
- <p>
- 控件的焦点。
- </p>
- <h3>[property:Number zoomSpeed]</h3>
- <p>
- 缩放的速度,其默认值为*1.2*。
- </p>
- <h2>方法</h2>
- <p>共有方法请参见其基类[page:Controls]。</p>
- <h3>[method:undefined handleResize] ()</h3>
- <p>
- 若应用程序窗口大小发生改变,则应当调用此函数。
- </p>
- <h3>[method:undefined reset] ()</h3>
- <p>
- 重置控制器到初始状态。
- </p>
- <h2>源代码</h2>
- <p>
- [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/TrackballControls.js examples/jsm/controls/TrackballControls.js]
- </p>
- </body>
- </html>
|