Selaa lähdekoodia

Merge pull request #15381 from LuHaoPeng/patch-1

Docs: Translation for zh-CN
Mr.doob 6 vuotta sitten
vanhempi
commit
95c906b667

+ 4 - 4
docs/api/zh/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -31,14 +31,14 @@
 
 
 		<h2>构造函数</h2>
 		<h2>构造函数</h2>
 
 
-		All of the above are called in the same way.
+		所有上述内容都以相同的方式调用。
 		<h3>TypedBufferAttribute( [param:Array array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
 		<h3>TypedBufferAttribute( [param:Array array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
 		<p>
 		<p>
-			array -- this can be a typed or untyped (normal) array. It will be converted to the Type specified.<br /><br />
+			array -- 这可以是类型化或非类型化的(普通)数组。它将被转换为指定的类型。<br /><br />
 
 
-			itemSize -- the number of values of the array that should be associated with a particular vertex.<br /><br />
+			itemSize -- 应与特定顶点关联的数组值的数量。<br /><br />
 
 
-			normalized -- (optional) indicates how the underlying data in the buffer maps to the values in the GLSL code.
+			normalized -- (可选)表示缓冲区中的基础数据如何映射到GLSL代码中的值。
 		</p>
 		</p>
 
 
 		<h2>属性</h2>
 		<h2>属性</h2>

+ 6 - 6
docs/api/zh/extras/Earcut.html

@@ -11,20 +11,20 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-		An implementation of the earcut polygon triangulation algorithm. The code is a port of [link:https://github.com/mapbox/earcut mapbox/earcut].
+		切割多边形三角剖分算法的实现。这份代码是[link:https://github.com/mapbox/earcut mapbox/earcut]的一个端口。
 		</p>
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
 		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
 		<p>
 		<p>
-		data -- A flat array of vertice coordinates.<br /><br />
-		holeIndices -- An array of hole indices if any.<br /><br />
-		dim -- The number of coordinates per vertice in the input array.<br /><br />
+		data -- 一个顶点坐标的平面数组。<br /><br />
+		holeIndices -- 空洞索引的数组(如果有的话)。<br /><br />
+		dim -- 输入数组中每个顶点的坐标数。<br /><br />
 
 
 		</p>
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>
 	</body>

+ 12 - 15
docs/api/zh/extras/ShapeUtils.html

@@ -11,43 +11,40 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-		A class containing utility functions for shapes.<br /><br />
+		一个包含形状实用函数的类。<br /><br />
 
 
-		Note that these are all linear functions so it is neccessary to calculate separately for
-		x, y (and z, w if present) components of a vector.
+		请注意,这些都是线性函数,因此有必要分别计算向量的x,y(和z,w,如果存在的话)分量。
 		</p>
 		</p>
 
 
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:Number area]( contour )</h3>
 		<h3>[method:Number area]( contour )</h3>
 		<p>
 		<p>
-		contour -- 2D polygon.<br /><br />
+		contour -- 2D多边形。<br /><br />
 
 
-		Calculate area of a ( 2D ) contour polygon.<br /><br />
+		计算(2D)轮廓多边形的面积。<br /><br />
 
 
 		</p>
 		</p>
 
 
 		<h3>[method:Boolean isClockwise]( pts )</h3>
 		<h3>[method:Boolean isClockwise]( pts )</h3>
 		<p>
 		<p>
-		pts -- points defining a 2D polygon<br /><br />
+		pts -- 定义2D多边形的点<br /><br />
 
 
-		Note that this is a linear function so it is neccessary to calculate separately for
-		x, y  components of a polygon.<br /><br />
+		请注意,这是一个线性函数,因此需要分别计算多边形的x,y分量。<br /><br />
 
 
-		Used internally by [page:Path Path],
-		[page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry].
+		由[page:Path Path],[page:ExtrudeGeometry ExtrudeGeometry]和[page:ShapeGeometry ShapeGeometry]内部使用。
 		</p>
 		</p>
 
 
 		<h3>[method:Array triangulateShape]( contour, holes )</h3>
 		<h3>[method:Array triangulateShape]( contour, holes )</h3>
 		<p>
 		<p>
-		contour -- 2D polygon.<br />
-		holes -- array of holes<br /><br />
+		contour -- 2D多边形。<br />
+		holes -- 空洞数组<br /><br />
 
 
-		Used internally by [page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry] to calculate faces in shapes with holes.
+		由[page:ExtrudeGeometry ExtrudeGeometry]和[page:ShapeGeometry ShapeGeometry]内部使用以计算带孔的形状中的面。
 		</p>
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>
 	</body>

+ 60 - 69
docs/manual/zh/buildTools/Testing-with-NPM.html

@@ -8,69 +8,67 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
-		<h1>[name]</h1>
+		<h1>使用NPM进行测试([name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-			This article shows how to get three.js into a [link:https://nodejs.org/en/ node.js] environment so that you
-			can execute automated tests. Tests can be run on the command line, or by automated
-			CI tools like [link:https://travis-ci.org/ Travis].
+			这篇文章展示了如何将three.js置入[link:https://nodejs.org/en/ node.js]环境中,
+			这样你就可以执行自动化测试了。测试可以通过命令行或者类似[link:https://travis-ci.org/ Travis]的CI工具来运行。
 		</p>
 		</p>
 
 
-		<h2>The short version</h2>
+		<h2>一句话概括</h2>
 
 
 		<p>
 		<p>
-			If you're comfortable with node and npm,
+			如果你习惯使用node和npm,
 			<code>
 			<code>
 				$ npm install three --save-dev
 				$ npm install three --save-dev
 			</code>
 			</code>
-			and add
+			并将
 		<code>
 		<code>
 			var THREE = require('three');
 			var THREE = require('three');
 		</code>
 		</code>
-			to your test.
+			添加到你的测试中。
 		</p>
 		</p>
 
 
-		<h2>Create a testable project from scratch</h2>
+		<h2>从头创建一个可测试的项目</h2>
 		<p>
 		<p>
-			If you're not familiar with these tools, here's a quick guide (for linux, the installation process
-			will be slightly different using windows, but the NPM commands are identical).
+			如果你不太熟悉这些工具,下面是一个快速入门。(基于linux,在windows上的安装过程会稍稍有点不一样,不过NPM指令是相同的。)
 		</p>
 		</p>
 
 
-		<h3>Basic setup</h3>
+		<h3>基本设置</h3>
 		<div>
 		<div>
 			<ol>
 			<ol>
 				<li>
 				<li>
-					Install [link:https://www.npmjs.org/ npm] and nodejs. The shortest path typically looks something like
+					安装[link:https://www.npmjs.org/ npm]和nodejs。最简单的方式一般像这样
 					<code>
 					<code>
 $ sudo apt-get install -y npm nodejs-legacy
 $ sudo apt-get install -y npm nodejs-legacy
-# fix any problems with SSL in the default registry URL
+# 修复默认registry URL中任何SSL的问题
 $ npm config set registry http://registry.npmjs.org/
 $ npm config set registry http://registry.npmjs.org/
 					</code>
 					</code>
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Make a new project directory
+					新建一个项目路径
 					<code>
 					<code>
 						 $ mkdir test-example; cd test-example
 						 $ mkdir test-example; cd test-example
 					</code>
 					</code>
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Ask npm to create a new project file for you:
+					让npm为你创建一份新的项目文件:
 					<code>
 					<code>
 					 $ npm init
 					 $ npm init
 					</code>
 					</code>
-					 and accept all defaults by hitting Enter on all the prompts.
-					 This will create package.json.
+					 在所有出现的提示中敲击回车键来接受默认值。
+					 这样,一份package.json就建立好了。
 				</li><br />
 				</li><br />
 
 
 				<li>
 				<li>
-					Try and start the test feature with
+					尝试启动测试功能
 					<code>
 					<code>
 $ npm test
 $ npm test
 					</code>
 					</code>
-					This will fail, which is expected.
-					If you look in the package.json, the definition of the test script is
+					当然,这一定会失败。
+					如果你检查一下package.json,test script的定义是这样的
 					<code>
 					<code>
 						"test": "echo \"Error: no test specified\" && exit 1"
 						"test": "echo \"Error: no test specified\" && exit 1"
 					</code>
 					</code>
@@ -79,78 +77,75 @@ $ npm test
 			</ol>
 			</ol>
 		</div>
 		</div>
 
 
-		<h2>Add mocha</h2>
+		<h2>添加mocha</h2>
 		<div>
 		<div>
-			We're going to use [link:https://mochajs.org/ mocha].
+			我们将使用[link:https://mochajs.org/ mocha]。
 
 
 			<ol>
 			<ol>
 				<li>
 				<li>
-					Install mocha with
+					安装mocha
 					<code>
 					<code>
 $ npm install mocha --save-dev
 $ npm install mocha --save-dev
 					</code>
 					</code>
-					Notice that node_modules/ is created and your dependencies appear in there.
-				  Also notice that your package.json has been updated: the property devDependencies
-					is added and updated by the use of --save-dev.
+					你会注意到 node_modules/ 被创建了,并且你的依赖都出现在了这里面。
+					还有你的package.json被更新了,--save-dev指令向其中加入并更新了devDependencies属性。
 				</li><br />
 				</li><br />
 
 
 				<li>
 				<li>
-					Edit package.json to use mocha for testing. When test is invoked, we just want to run
-					mocha and specify a verbose reporter. By default this will run anything in test/
-					(not having directory test/ can run into npm ERR!, create it by mkdir test)
+					编辑package.json来使用mocha进行测试。当调用测试的时候,我们只想运行mocha并且生成一份详细的报告。
+					默认情况下这会运行 test/ 中的任何东西。
+					(如果项目中没有 test/ 目录的话,会导致npm报错。你可以通过mkdir test来创建这个目录)
 					<code>
 					<code>
 						"test": "mocha --reporter list"
 						"test": "mocha --reporter list"
 					</code>
 					</code>
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Rerun the test with
+					重新运行测试
 					<code>
 					<code>
 						$ npm test
 						$ npm test
 					</code>
 					</code>
 
 
-					This should now succeed, reporting 0 passing (1ms)
-				 	or similar.
+					现在应该就能成功执行了,生成类似 0 passing (1ms) 的报告。
 				</li>
 				</li>
 
 
 			</ol>
 			</ol>
 		</div>
 		</div>
 
 
-		<h2>Add three.js</h2>
+		<h2>添加three.js</h2>
 		<div>
 		<div>
 			<ol>
 			<ol>
 				<li>
 				<li>
-					Let's pull in our three.js dependency with
+					现在添加我们的three.js依赖
 					<code>
 					<code>
 $ npm install three --save-dev
 $ npm install three --save-dev
 					</code>
 					</code>
 					<ul>
 					<ul>
 						<li>
 						<li>
-							If you need a different three version, use
+							如果你需要three.js的其他版本,使用
 							<code>
 							<code>
 								$ npm show three versions
 								$ npm show three versions
 							</code>
 							</code>
-						  to see
-							what's available. To tell npm the right one, use
+						  	来确认哪些是可用的。要让npm使用正确的版本,执行
 							<code>
 							<code>
  $ npm install [email protected] --save
  $ npm install [email protected] --save
 							</code>
 							</code>
-							(0.84.0 in this example). --save makes this a dependency of this project, rather than
-							dev dependency. See the docs [link:https://www.npmjs.org/doc/json.html here] for more info.
+							(例子中用的是0.84.0)。 --save 指令将此加入项目的dependency而不是dev dependency。
+							更多信息请参阅<a href="https://www.npmjs.org/doc/json.html">这份文档</a>。
 						</li>
 						</li>
 					</ul>
 					</ul>
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Mocha will look for tests in test/, so let's
+					Mocha会在 test/ 目录中寻找测试文件,所以我们先创建这个目录:
 					<code>
 					<code>
 					$ mkdir test
 					$ mkdir test
 					</code>
 					</code>
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Finally we actually need a JS test to run. Let's add a simple test that will verify that
-					the three.js object is available and working. Create test/verify-three.js containing:
+					最后我们需要一份JS测试文件来运行。我们就添加一段简单的测试程序,这段程序会检验three.js对象是否能正常工作。
+					在 test/ 目录下创建verify-three.js包含以下代码:
 <code>
 <code>
 var THREE = require('three');
 var THREE = require('three');
 var assert = require("assert");
 var assert = require("assert");
@@ -169,8 +164,7 @@ describe('The THREE object', function() {
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-				Finally let's test again with $ npm test. This should run the tests above and succeed,
-				showing something like:
+				最后再次通过$ npm test来测试。这次应该能正确执行上面的代码,并且返回类似:
 				<code>
 				<code>
 The THREE object should have a defined BasicShadowMap constant: 0ms
 The THREE object should have a defined BasicShadowMap constant: 0ms
 The THREE object should be able to construct a Vector3 with default of x=0: 0ms
 The THREE object should be able to construct a Vector3 with default of x=0: 0ms
@@ -180,33 +174,33 @@ The THREE object should be able to construct a Vector3 with default of x=0: 0ms
 			</ol>
 			</ol>
 		</div>
 		</div>
 
 
-		<h2>Add your own code</h2>
+		<h2>加入你自己的代码</h2>
 		<div>
 		<div>
-			You need to do three things:
+			你需要做下面三件事:
 
 
 			<ol>
 			<ol>
 				<li>
 				<li>
-					Write a test for the expected behaviour of your code, and place it under test/.
-					[link:https://github.com/air/encounter/blob/master/test/Physics-test.js Here] is an example from a real project.
+					为你的代码写一段测试程序来检验期望结果,并把它放在 test/ 目录下。
+					<a href="https://github.com/air/encounter/blob/master/test/Physics-test.js">这里</a>有一个实际项目的例子。
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Export your functional code in such a way that nodejs can see it, for use in conjunction with require.
-					See it [link:https://github.com/air/encounter/blob/master/js/Physics.js here].
+					将你的代码以nodejs承认的方式导出,即可以通过require的方式引用。
+					参考<a href="https://github.com/air/encounter/blob/master/js/Physics.js">这份代码</a>。
 				</li>
 				</li>
 
 
 				<li>
 				<li>
-					Require your code into the test file, in the same way we did a require('three') in the example above.
+					在测试程序中通过require引入你自己的代码,就像上面例子中我们通过require('three')来引入一样。
 				</li>
 				</li>
 			</ol>
 			</ol>
 
 
 			<p>
 			<p>
-				Items 2 and 3 will vary depending on how you manage your code. In the example of Physics.js
-		  	given above, the export part is right at the end. We assign an object to module.exports:
+				第2、3条会根据你组织代码的方式而改变。在上面给出的Physics.js的例子中,导出的部分在代码的最末尾。
+				我们将module.exports赋值为一个对象:
 			</p>
 			</p>
 			<code>
 			<code>
 //=============================================================================
 //=============================================================================
-// make available in nodejs
+// 为了在nodejs中可用
 //=============================================================================
 //=============================================================================
 if (typeof exports !== 'undefined')
 if (typeof exports !== 'undefined')
 {
 {
@@ -215,38 +209,35 @@ if (typeof exports !== 'undefined')
 			</code>
 			</code>
 		</div>
 		</div>
 
 
-		<h2>Dealing with dependencies</h2>
+		<h2>处理依赖</h2>
 		<div>
 		<div>
 			<p>
 			<p>
-				If you're already using something clever like require.js or browserify, skip this part.
+				如果你已经在使用require.js或者browserify之类的便捷工具,就跳过这个部分。
 			</p>
 			</p>
 			<p>
 			<p>
-				Typically a three.js project is going to run in the browser. Module loading is hence done by
-				the browser executing a bunch of script tags. Your individual files don't have to worry
-				about dependencies. In a nodejs context however, there is no index.html binding everything
-				together, so you have to be explicit.
+				一般来说,一个three.js项目将在浏览器中运行,浏览器会通过执行一系列script标签来加载模块。
+				你自己的文件不用考虑依赖的问题。然而在nodejs环境中,没有一个关联所有文件的index.html,所以你需要显式地加载。
 			</p>
 			</p>
 			<p>
 			<p>
-				If you're exporting a module that depends on other files, you're going to have to tell node to load them.
-				Here is one approach:
+				如果你要导出的模块还依赖其他文件,你需要告诉node去加载它们。下面是一种方式:
 			</p>
 			</p>
 			<ol>
 			<ol>
 				<li>
 				<li>
-					At the start of your module, check to see if you're in a nodejs environment.
+					在你的模块顶部,检查是否处于nodejs环境中。
 				</li>
 				</li>
 				<li>
 				<li>
-					If so, explicitly declare your dependencies.
+					如果是,那就显式地声明你的依赖。
 				</li>
 				</li>
 				<li>
 				<li>
-					If not, you're probably in a browser so you don't need to do anything else.
+					如果不是,你多半处于浏览器环境中。这时候你不需要做任何多余操作。
 				</li>
 				</li>
 			</ol>
 			</ol>
-			Example code from Physics.js:
+			用Physics.js中的代码举例:
 			<code>
 			<code>
 //=============================================================================
 //=============================================================================
-// setup for server-side testing
+// 服务器端测试配置
 //=============================================================================
 //=============================================================================
-if (typeof require === 'function') // test for nodejs environment
+if (typeof require === 'function') // 检测nodejs环境
 {
 {
   var THREE = require('three');
   var THREE = require('three');
   var MY3 = require('./MY3.js');
   var MY3 = require('./MY3.js');

+ 33 - 34
docs/manual/zh/introduction/How-to-update-things.html

@@ -8,7 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
-		<h1>[name]</h1>
+		<h1>如何更新场景([name]</h1>
 		<div>
 		<div>
 			<p>默认情况下,所有对象都会自动更新它们的矩阵(如果它们已添加到场景中)</p>
 			<p>默认情况下,所有对象都会自动更新它们的矩阵(如果它们已添加到场景中)</p>
 			<code>
 			<code>
@@ -21,7 +21,7 @@ var object1 = new THREE.Object3D();
 var object2 = new THREE.Object3D();
 var object2 = new THREE.Object3D();
 
 
 object1.add( object2 );
 object1.add( object2 );
-scene.add( object1 ); //object1 and object2 will automatically update their matrices
+scene.add( object1 ); //object1 和 object2 会自动更新它们的矩阵
 			</code>
 			</code>
 		</div>
 		</div>
 
 
@@ -32,27 +32,27 @@ object.matrixAutoUpdate  = false;
 object.updateMatrix();
 object.updateMatrix();
 		</code>
 		</code>
 
 
-		<h2>Geometries(几何形状)</h2>
+		<h2>几何形状(Geometries)</h2>
 		<div>
 		<div>
 			<h3>[page:BufferGeometry]</h3>
 			<h3>[page:BufferGeometry]</h3>
 			<div>
 			<div>
 				<p>
 				<p>
-					BufferGeometries 将信息(例如顶点位置,面索引,法线,颜色,uv和任何自定义属性) 存储在 [page:BufferAttribute buffers] - 也就是,
+					BufferGeometries 将信息(例如顶点位置,面索引,法线,颜色,uv和任何自定义属性)存储在[page:BufferAttribute buffers] —— 也就是,
 					[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays typed arrays].
 					[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays typed arrays].
 					这使得它们通常比标准Geometries更快,缺点是更难用。
 					这使得它们通常比标准Geometries更快,缺点是更难用。
 				</p>
 				</p>
 				<p>
 				<p>
-					关于更新BufferGeometries, 最重要的是理解你不能调整 buffers 大小(这种操作开销很大,	相当于创建了个新的geometry).
-					但你可以更新 buffers的内容.
+					关于更新BufferGeometries,最重要的是理解你不能调整 buffers 大小(这种操作开销很大,相当于创建了个新的geometry)。
+					但你可以更新 buffers的内容
 				</p>
 				</p>
 				<p>
 				<p>
 					这意味着如果你知道BufferGeometry的一个属性会增长,比如顶点的数量,
 					这意味着如果你知道BufferGeometry的一个属性会增长,比如顶点的数量,
 					你必须预先分配足够大的buffer来容纳可能创建的任何新顶点。
 					你必须预先分配足够大的buffer来容纳可能创建的任何新顶点。
-					当然,这也意味着BufferGeometry将有一个最大大小 - 无法创建一个可以高效地无限扩展的BufferGeometry。
+					当然,这也意味着BufferGeometry将有一个最大大小 —— 无法创建一个可以高效地无限扩展的BufferGeometry。
 				</p>
 				</p>
 				<p>
 				<p>
 					我们以在渲染时扩展的line来示例。我们将分配可容纳500个顶点的空间但起初仅绘制2个,使用
 					我们以在渲染时扩展的line来示例。我们将分配可容纳500个顶点的空间但起初仅绘制2个,使用
-					在500个顶点的缓冲区中,但首先只使用 [page:BufferGeometry.drawRange].
+					在500个顶点的缓冲区中,但首先只使用 [page:BufferGeometry.drawRange]
 				</p>
 				</p>
 				<code>
 				<code>
 var MAX_POINTS = 500;
 var MAX_POINTS = 500;
@@ -106,14 +106,14 @@ line.geometry.setDrawRange( 0, newValue );
 					如果要在第一次渲染后更改position数值,则需要像这样设置needsUpdate标志:
 					如果要在第一次渲染后更改position数值,则需要像这样设置needsUpdate标志:
 				</p>
 				</p>
 				<code>
 				<code>
-line.geometry.attributes.position.needsUpdate = true; // required after the first render
+line.geometry.attributes.position.needsUpdate = true; // 需要加在第一次渲染之后
 				</code>
 				</code>
 
 
 				<p>
 				<p>
-					[link:http://jsfiddle.net/w67tzfhx/ 这个fiddle] 展示了一个你可以参考的运动的line.
+					<a href="http://jsfiddle.net/w67tzfhx/">这个fiddle</a>展示了一个你可以参考的运动的line。
 				</p>
 				</p>
 
 
-				<h3>Examples:</h3>
+				<h3>例子:</h3>
 					[example:webgl_custom_attributes WebGL / custom / attributes]<br />
 					[example:webgl_custom_attributes WebGL / custom / attributes]<br />
 					[example:webgl_buffergeometry_custom_attributes_particles WebGL / buffergeometry / custom / attributes / particles]
 					[example:webgl_buffergeometry_custom_attributes_particles WebGL / buffergeometry / custom / attributes / particles]
 
 
@@ -123,10 +123,9 @@ line.geometry.attributes.position.needsUpdate = true; // required after the firs
 			<h3>[page:Geometry]</h3>
 			<h3>[page:Geometry]</h3>
 			<div>
 			<div>
 				<p>
 				<p>
-					以下标志控制各种geometry属性的更新. 仅对于需要更新的属性设置标志
-					,因为更新成本很高. 一旦buffers
-					改变, 这些标志位会自动重置为false. 你需要保持这些设置为true,如果你想要持续更新buffers. 请注意这仅适用于[page:Geometry]
-					而不是 [page:BufferGeometry].
+					以下标志控制各种geometry属性的更新。仅对于需要更新的属性设置标志,因为更新成本很高。
+					一旦buffers改变,这些标志位会自动重置为false。如果你想要持续更新buffers,你需要保持这些设置为true。
+					请注意这仅适用于[page:Geometry]而不是[page:BufferGeometry]。
 				</p>
 				</p>
 				<code>
 				<code>
 var geometry = new THREE.Geometry();
 var geometry = new THREE.Geometry();
@@ -140,8 +139,8 @@ geometry.tangentsNeedUpdate = true;
 				</code>
 				</code>
 
 
 				<p>
 				<p>
-					在早于 [link:https://github.com/mrdoob/three.js/releases/tag/r66 r66]版本中, meshes
-					需要额外设定 <em>dynamic</em> 标志true (为了维持内部的 typed arrays):
+					在早于[link:https://github.com/mrdoob/three.js/releases/tag/r66 r66]版本中,meshes
+					需要额外设定 <em>dynamic</em> 标志为true (为了维持内部的 typed arrays):
 				</p>
 				</p>
 
 
 				<code>
 				<code>
@@ -149,7 +148,7 @@ geometry.tangentsNeedUpdate = true;
 		geometry.dynamic = true;
 		geometry.dynamic = true;
 				</code>
 				</code>
 
 
-				<h3>Examples:</h3>
+				<h3>例子:</h3>
 					[example:webgl_geometry_dynamic WebGL / geometry / dynamic]<br />
 					[example:webgl_geometry_dynamic WebGL / geometry / dynamic]<br />
 			</div>
 			</div>
 
 
@@ -158,19 +157,19 @@ geometry.tangentsNeedUpdate = true;
 
 
 
 
 
 
-		<h2>Materials(材质)</h2>
+		<h2>材质(Materials)</h2>
 		<div>
 		<div>
-			<p>所有uniforms值都可以自由改变 (e.g. colors, textures, opacity, etc), 这些数值在每帧都发给shader .</p>
+			<p>所有uniforms值都可以自由改变(比如 colors, textures, opacity 等等),这些数值在每帧都发给shader。</p>
 
 
-			<p>GL状态相关参数也可以随时改变 (depthTest, blending, polygonOffset, etc).</p>
+			<p>GL状态相关参数也可以随时改变(depthTest, blending, polygonOffset 等)。</p>
 
 
-			<p>平滑/平滑阴影被作到法线. 你需要重置法线 buffer (见上).</p>
+			<p>平整/光滑阴影被作到法线。你需要重置法线 buffer(见上)。</p>
 
 
-			<p>在运行时无法轻松更改以下属性 (一旦material被渲染了一次):</p>
+			<p>在运行时无法轻松更改以下属性(一旦material被渲染了一次):</p>
 			<ul>
 			<ul>
 				<li>uniforms的数量和类型</li>
 				<li>uniforms的数量和类型</li>
 				<li>lights的数量和类型</li>
 				<li>lights的数量和类型</li>
-				<li>存在与否
+				<li>是否存在
 					<ul>
 					<ul>
 						<li>texture</li>
 						<li>texture</li>
 						<li>fog</li>
 						<li>fog</li>
@@ -183,42 +182,42 @@ geometry.tangentsNeedUpdate = true;
 				</li>
 				</li>
 			</ul>
 			</ul>
 
 
-			<p>这些变化需要建立新的shader程序. 你需要设置</p>
+			<p>这些变化需要建立新的shader程序你需要设置</p>
 			<code>material.needsUpdate = true</code>
 			<code>material.needsUpdate = true</code>
 
 
-			<p>请记住,这可能会非常缓慢并导致帧率的波动。 (特别是在Windows上,因为shader编译在directx中比opengl慢).</p>
+			<p>请记住,这可能会非常缓慢并导致帧率的波动。(特别是在Windows上,因为shader编译在directx中比opengl慢)。</p>
 
 
-			<p>为了获得更流畅的体验,您可以通过“虚拟”值(如零强度光,白色纹理或零密度雾)在一定程度上模拟这些功能的变化.</p>
+			<p>为了获得更流畅的体验,您可以通过“虚拟”值(如零强度光,白色纹理或零密度雾)在一定程度上模拟这些功能的变化</p>
 
 
-			<p>您可以自由更改用于几何块的材质,但是无法更改对象如何划分为块(根据面材料). </p>
+			<p>您可以自由更改用于几何块的材质,但是无法更改对象如何划分为块(根据面材料)</p>
 
 
 			<h3>如果你需要在运行时使用不同的材料配置:</h3>
 			<h3>如果你需要在运行时使用不同的材料配置:</h3>
-			<p>如果材料/块的数量很少,您可以事先预先划分物体(例如,人的头发/脸部/身体/上衣/裤子,汽车的前部/侧面/顶部/玻璃/轮胎/内部). </p>
+			<p>如果材料/块的数量很少,您可以事先预先划分物体(例如,人的头发/脸部/身体/上衣/裤子,汽车的前部/侧面/顶部/玻璃/轮胎/内部)</p>
 
 
 			<p>如果数量很大(例如,每个面可能有所不同),请考虑不同的解决方案,例如使用属性/纹理来驱动不同的每个面部外观。</p>
 			<p>如果数量很大(例如,每个面可能有所不同),请考虑不同的解决方案,例如使用属性/纹理来驱动不同的每个面部外观。</p>
 
 
-			<h3>Examples:</h3>
+			<h3>例子:</h3>
 			[example:webgl_materials_cars WebGL / materials / cars]<br />
 			[example:webgl_materials_cars WebGL / materials / cars]<br />
 			[example:webgl_postprocessing_dof WebGL / webgl_postprocessing / dof]
 			[example:webgl_postprocessing_dof WebGL / webgl_postprocessing / dof]
 		</div>
 		</div>
 
 
 
 
-		<h2>Textures(纹理)</h2>
+		<h2>纹理(Textures)</h2>
 		<div>
 		<div>
 			<p>如果更改了图像,画布,视频和数据纹理,则需要设置以下标志:</p>
 			<p>如果更改了图像,画布,视频和数据纹理,则需要设置以下标志:</p>
 			<code>
 			<code>
 				texture.needsUpdate = true;
 				texture.needsUpdate = true;
 			</code>
 			</code>
-			<p>Render targets update automatically.</p>
+			<p>渲染对象就会自动更新。</p>
 
 
-			<h3>Examples:</h3>
+			<h3>例子:</h3>
 			[example:webgl_materials_video WebGL / materials / video]<br />
 			[example:webgl_materials_video WebGL / materials / video]<br />
 			[example:webgl_rtt WebGL / rtt]
 			[example:webgl_rtt WebGL / rtt]
 
 
 		</div>
 		</div>
 
 
 
 
-		<h2>Cameras(相机)</h2>
+		<h2>相机(Cameras)</h2>
 		<div>
 		<div>
 			<p>相机的位置和目标会自动更新。 如果你需要改变</p>
 			<p>相机的位置和目标会自动更新。 如果你需要改变</p>
 			<ul>
 			<ul>

+ 14 - 14
docs/manual/zh/introduction/Matrix-transformations.html

@@ -8,24 +8,24 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
-		<h1>[name]</h1>
+		<h1>矩阵变换([name]</h1>
 
 
 		<p>
 		<p>
-				Three.js使用*matrix*编码3D变换 - 平移(位置),旋转和缩放。 [page:Object3D]的每个实例都有一个[page:Object3D.matrix matrix],用于存储该对象的位置,旋转和比例。 本页介绍如何更新对象的转换。
+				Three.js使用*matrix*编码3D变换 —— 平移(位置),旋转和缩放。
+				[page:Object3D]的每个实例都有一个[page:Object3D.matrix matrix],用于存储该对象的位置,旋转和比例。本页介绍如何更新对象的变换。
 		</p>
 		</p>
 
 
-		<h2>Convenience properties and *matrixAutoUpdate*(便利属性和 *matrixAutoUpdate*)</h2>
+		<h2>便利的属性和*matrixAutoUpdate*(Convenience properties and *matrixAutoUpdate*)</h2>
 
 
 		有两种方法可以更新对象的转换:
 		有两种方法可以更新对象的转换:
 		<ol>
 		<ol>
 			<li>
 			<li>
-				修改对象的* position *,* quaternion *和* scale *属性,让three.js重新计算
-				来自这些属性的对象矩阵:
+				修改对象的*position*,*quaternion*和*scale*属性,让three.js重新计算来自这些属性的对象矩阵:
 				<code>
 				<code>
 				object.position.copy(start_position);
 				object.position.copy(start_position);
 				object.quaternion.copy(quaternion);
 				object.quaternion.copy(quaternion);
 				</code>
 				</code>
-				默认情况下,* matrixAutoUpdate *属性设置为true,并且将自动重新计算矩阵。
+				默认情况下,*matrixAutoUpdate*属性设置为true,并且将自动重新计算矩阵。
 如果对象是静态的,或者您希望在重新计算时手动控制,则可以通过将属性设置为false来获得更好的性能:
 如果对象是静态的,或者您希望在重新计算时手动控制,则可以通过将属性设置为false来获得更好的性能:
 				<code>
 				<code>
 				object.matrixAutoUpdate = false;
 				object.matrixAutoUpdate = false;
@@ -42,25 +42,25 @@
 				object.matrix.setPosition(start_position);
 				object.matrix.setPosition(start_position);
 				object.matrixAutoUpdate = false;
 				object.matrixAutoUpdate = false;
 				</code>
 				</code>
-				请注意,在这种情况下,* matrixAutoUpdate * <em>必须</em>设置为* false *,并且您应该确保<em>不</em>调用* updateMatrix *。 调用* updateMatrix *将破坏对矩阵所做的手动更改,从* position *,* scale *重新计算矩阵,依此类推。
+				请注意,在这种情况下,*matrixAutoUpdate* <em> 必须 </em>设置为*false*,并且您应该确保<em> 不 </em>调用*updateMatrix*。
+				调用*updateMatrix*将破坏对矩阵所做的手动更改,从*position*,*scale*重新计算矩阵,依此类推。
 			</li>
 			</li>
 		</ol>
 		</ol>
 
 
-		<h2>Object and world matrices(对象和世界矩阵)</h2>
+		<h2>对象和世界矩阵(Object and world matrices)</h2>
 		<p>
 		<p>
-		对象的[page:Object3D.matrix matrix]将对象的转换<em> 相对于 </em>对象的[page:Object3D.parent parent]; 要在<em> 世界 </em>坐标中获取对象的转换,您必须访问该对象的[page:Object3D.matrixWorld]。
-		An object's [page:Object3D.matrix matrix] stores the object's transformation 
+		一个对象的[page:Object3D.matrix matrix]存储了该对象<em> 相对于 </em>其[page:Object3D.parent](父节点)的变换。要在<em> 世界 </em>坐标系中获取对象的转换,您必须访问该对象的[page:Object3D.matrixWorld]。
 		</p>
 		</p>
 		<p>
 		<p>
-		当父对象或子对象的转换发生更改时,可以通过调用[page:Object3D.updateMatrixWorld updateMatrixWorld]()来请求更新子对象的[page:Object3D.matrixWorld matrixWorld]。
+		当父对象或子对象的变换发生更改时,可以通过调用[page:Object3D.updateMatrixWorld updateMatrixWorld()]来请求更新子对象的[page:Object3D.matrixWorld matrixWorld]。
 		</p>
 		</p>
 
 
-		<h2>Rotation and Quaternion(旋转和四元数)</h2>
+		<h2>旋转和四元数(Rotation and Quaternion)</h2>
 		<p>
 		<p>
-		Three.js提供了两种表示3D旋转的方式:[page:Euler Euler angles]和[page:Quaternion Quaternions],以及两者之间的转换方法。 欧拉角受到称为“万向节锁定”的问题,其中某些配置可能失去一定程度的自由度(防止物体绕一个轴旋转)。 因此,对象旋转<em>始终</em>存储在对象的[page:Object3D.quaternion quaternion]中。
+		Three.js提供了两种表示3D旋转的方式:[page:Euler Euler angles](欧拉角)和[page:Quaternion Quaternions](四元数),以及两者之间的转换方法。 欧拉角有称为“万向节锁定”的问题,其中某些配置可能失去一定程度的自由度(防止物体绕一个轴旋转)。 因此,对象旋转<em> 始终 </em>存储在对象的[page:Object3D.quaternion quaternion]中。
 		</p>
 		</p>
 		<p>
 		<p>
-		该库的早期版本包含* useQuaternion *属性,当设置为false时,将导致对象的[page:Object3D.matrix矩阵]从欧拉角计算。 这种做法已被弃用 - 相反,您应该使用[page:Object3D.setRotationFromEuler setRotationFromEuler]方法,该方法将更新四元数。	
+		该库的早期版本包含*useQuaternion*属性,当设置为false时,将导致对象的[page:Object3D.matrix matrix]从欧拉角计算。这种做法已被弃用 - 作为代替,您应该使用[page:Object3D.setRotationFromEuler setRotationFromEuler]方法,该方法将更新四元数。
 		</p>
 		</p>
 
 
 	</body>
 	</body>