You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

191 lines
4.8 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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] &rarr;
<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>