
Japanese: 
ここまでで様々な変換を学習しました
three.jsは
基本的な画像変換をサポートするライブラリで
コードの内容を理解していなくても
3D描画を作成できます
ただしthree.jsは
すべての変換をサポートするわけではありません
頂点シェーダやピクセルシェーダを
パイプラインにプログラミングしたければ
コーディングについて学ぶ必要があります
これはアームロボット前腕の
Object3D構成コードのスクリーンショットです
デバッガを使っています
皆さんも使ったことがありますよね？
まだでしたらすぐに補足の資料をご覧ください
Object3Dを勉強すると
matrixというパラメータを目にします
Matrix4という数字の羅列が組み込まれたクラスで
これを使い3Dオブジェクトの形、方向、
位置などが変換されます
配置、回転、スケーリングを設定すると
数列情報に反映され
すべての変換が
この行列内の数列として表されるのです
行列と点やベクトルとして表される座標を掛け算し

English: 
At this point, you should have a pretty good sense of what the various
transforms do. Three.js supports these basic transforms without you needing to
understand what's going on inside the code. However, three.js can't provide
every possible type of transform out there. Though it tries. More importantly,
you'll need to know more about how transforms are coded if you want to program
the vertex and pixel shaders in the pipeline. Here's a screenshot of the
contents of the forearm object 3D from the robot arm demo. Using the debugger.
You have been using the debugger in your browser, right? If not, please go look
at the additional course materials right now and learn more about it. If you dig
inside any object 3D, you'll see a parameter called matrix. It is a Matrix4 with
a bunch of numbers in it. Ultimately this matrix parameter is what holds the
transform that changes the object's shape, orientation, and location. When you
set the position, rotation, and scale these all affect what gets stored in this
array. This matrix represents all these transforms put together in a tidy
package. We can multiply a coordinate, represented by a pointer vector, by this

Japanese: 
新たな座標を作ることができます
実に簡単に言ってしまえば
どんなオブジェクトも
それを構成する点の集合で表せるのです
例えば原点を中心とした立方体を1つ作るとします
この立方体の点を行列を用いて変換していきます
移動、回転、スケーリングと思いのままに
変換できます　変換行列は4×4行列です
three.jsはMatrix3クラスにも対応していますが
使う人はほとんどいません
一般数学において行列は
12×38などいかなる並びも可能ですが
GPUには4×4行列が適しています
この行列に座標を掛けることができます
これは4×4行列の右側に
座標を設定した行列式です
計算結果の座標を左に置いて等号で結びます
数学的に記述すると
座標×行列=新しい座標となります
座標と行列の掛け算では
座標と行列内の各行のドット積を求めます
例えば1行目のドット積の演算ですが

English: 
matrix and get a new coordinate. That's honestly it in a nut shell. Any object
we make is ultimately represented by a bunch of points. These points are in the
object's own sort of space. For example if we make a cube using cube geometry
it's centered around the origin. We transform the cube's points by a transfer
matrix to move, rotate and scale it as desired. A transform matrix is a 4 by 4
set of numbers. Three.js also supports a Matrix3 type which almost no one uses.
In math in general a matrix can have any dimensions at all. Such as 12 by 38.
The 4 by 4 matrix is the size that the GPU prefers. We can multiply a coordinate
by a matrix. This is shown by putting the coordinate to the right of the matrix.
The new resulting coordinate is put to the left of the equals sign. The
mathematical notation is shown here. The coordinate times the matrix gives this
new coordinate. To multiply a coordinate by a matrix you take the coordinate and
perform a dot product with each row of the matrix. For example the dot product

English: 
of the first row and the coordinate is this, D1 equals N11 times C1 plus N21
times C2 and so on the sum of these four terms is the first coordinate of the
result. The dot product of the second row in a coordinate gives D2, the second
coordinate of the result. After four dot products, you have a new coordinate.

Japanese: 
D1=N11×C1+N21×C2という演算を続けると
掛け算した4つの項の和が
左の座標1行目となります
2行目のドット積は左の座標2行目のD2となります
4行のドット積をそれぞれ求めると
左の新しい座標ができます
