Teachers open the door but You must enter by yourself.

Open Media Lab.
オープンメディアラボ

【事前学習】 高校のベクトル単元のベクトルの内積と成分について復習しておきましょう。

内積と成分
Inner Product & Vector Component

内積を使うと、ベクトルの長さや角度の情報と、成分(座標値)の情報の間を行き来することができるようになる。

2次元平面上の2つのベクトルの成分がそれぞれ $\vec a = (a_1, a_2)$ 、 $\vec b = (b_1, b_2)$、 $\vec a$ と $\vec b$ のなす角が $\theta$ のとき、それら2ベクトルの内積は以下の式で求められる。
\[\vec a \cdot \vec b = a_1 b_1 + a_2 b_2\] \[\vec a \cdot \vec b = |\vec a| |\vec b| \cos \theta = \sqrt{a_1^2+a_2^2} \sqrt{b_1^2+b_2^2} \cos \theta \]

同様に3次元空間中の2つのベクトルの成分がそれぞれ $\vec a = (a_1, a_2, a_3)$ 、 $\vec b = (b_1, b_2, b_3)$、 $\vec a$ と $\vec b$ のなす角が $\theta$ のとき、それら2ベクトルの内積は以下の式で求められる。
 \[\vec a \cdot \vec b = a_1 b_1 + a_2 b_2 + a_3 b_3\] \[\vec a \cdot \vec b = |\vec a| |\vec b| \cos \theta = \sqrt{a_1^2+a_2^2+a_3^2} \sqrt{b_1^2+b_2^2+b_3^2} \cos \theta \]

Lesson

  1. 次のベクトル $\vec a,\ \vec b$ の内積と、そのなす角 $\theta$ を求めよ。
    1. $\vec a = (1,\sqrt{3}),\ \vec b = (-\sqrt{3},-1)$
    2. $\vec a = (2, 4),\ \vec b = (1, -3)$
  2. $\vec 0$ でないベクトル $\vec a = (a_1, a_2)$ は、ベクトル $(a_2, -a_1)$ に垂直であることを示せ。
  3. ベクトル $\vec a = (2, -1)$ に垂直な単位ベクトルを求めよ。
  4. ベクトル $\vec a = (2, 1)$ に垂直で、大きさが $2\sqrt{5}$ のベクトルを求めよ。*
  5. ベクトル $\vec a = (3, 4)$ が $x$ 軸、$y$ 軸の正の向きとなす角を、それぞれ $\alpha,\ \beta$ とする。
    1. $\cos \alpha,\ \cos \beta$ の値を求めよ。
    2. $\cos^2 \alpha + \cos^2 \beta$ の値を求めよ。
  6. $\vec a = (4, 3)$ と$60^\circ$の角をなし、大きさが2倍のベクトルを求めよ。
  7. ベクトル $\vec a = (2, 2x),\ \vec b = (x, 1),\ \vec c = (3, y)$ について、$\vec a$ と $\vec b$ のなす角が$60^\circ$ で、$\vec b$ と $\vec c$ が垂直であるとき、$x,\ y$ の値を求めよ。
  8. ベクトル $\vec a = (1, x),\ \vec b = (y, -1),\ \vec c = (-1, 1)$ について、$\vec a-\vec b$ と $\vec c$ は垂直で、$\vec b-\vec c$ と $\vec a$ は平行であるとき、$x,\ y$ の値を求めよ。
  9. ベクトル $\vec a = (4, 2),\ \vec b = (3, -1),\ \vec c = (x, y)$ について、$\vec a-\vec b$ と $\vec c$ は平行で、$\vec c-\vec b$ と $\vec a$ は垂直であるとき、$x,\ y$ の値を求めよ。
  10. 原点Oを始点とする位置ベクトル $\vec a=(4, 2),\ \vec b=(-5, 3)$ がある。
    1. $\vec b$ に垂直で、大きさが $|\vec b|$ に等しいベクトルを求めよ。
    2. $\vec c \perp \vec a,\ (\vec c-\vec b) \parallel \vec a$ となる、位置ベクトル $\vec c$ を求めよ。

Answer

    1. $-2\sqrt 3,\ 150^\circ$ $\cos\theta=-\frac{\sqrt 3}{2}$ 
    2. $-10,\ 135^\circ$ $\cos\theta=-\frac{1}{\sqrt 2}$
  1. 共に零ベクトルでない2ベクトルの内積が $0$ であれば $\cos \theta=0$ (垂直)
  2. $(\frac{1}{\sqrt 5}, \frac{2}{\sqrt 5}),\ (-\frac{1}{\sqrt 5}, -\frac{2}{\sqrt 5})$ 例えば $(1,2),\ (-1,-2)$ は垂直で大きさが$\sqrt 5$
  3. $(2,-4),\ (-2,4)$ 例えば $(1,-2),\ (-1,2)$ は垂直で大きさが$\sqrt 5$
    1. $\vec a$ の単位ベクトルは $(\cos \alpha,\ \cos \beta)$
      $\cos \alpha=\frac{3}{5},\ \cos \beta=\frac{4}{5}$(方向余弦という)
    2. $1$
  4. $(4-3\sqrt 3,\ 3+4\sqrt 3),\ (4+3\sqrt 3,\ 3-4\sqrt 3) $
    求めるベクトルを $(x,y)$ とすると、
    $x^2+y^2=100$
    $4x+3y=5 \cdot 10 \cdot \cos 60^\circ$
  5. $x=2+\sqrt 3,\ y=-6-3\sqrt 3 または x=2-\sqrt 3,\ y=-6+3\sqrt 3$
    $\vec a \cdot \vec b =\sqrt{(4+4x^2)(x^2+1)}\ \frac{1}{2}=2x+2x,\ 7\pm2\sqrt{12}=(2\pm\sqrt 3)^2$
    $\vec b \cdot \vec c = 3x+y=0$
  6. $x=2,\ y=-2$ または $x=-1,\ y=1$
    $\vec a = (a_1, a_2),\ \vec b = (b_1, b_2)$ が平行の条件は $a_1:a_2=b_1:b_2$ すなわち $a_1 b_2=a_2 b_1$
  7. $x=1,\ y=3$
    1. $(3,5)$ または $(-3,-5)$ 
    2. $\left(-\frac{11}{5},\frac{22}{5}\right)$

Lesson 3D

  1. 次の2つのベクトル $\vec a,\ \vec b$ について、内積とそのなす角を求めよ。
    1. $\vec a = (1, 2, 1),\ \vec b = (-2, 2, 4)$
    2. $\vec a = (-1, 0, 1),\ \vec b = (-1, 2, 2)$
    3. $\vec a = (2, -3, 1),\ \vec b = (-3, 1, 2)$
  2. 3点 $\mathrm{A}(1, 0, 2),\ \mathrm{B}(1, 1, 1),\ \mathrm{C}(-1, -1, 1)$ がある。このとき、$\triangle\mathrm{ABC}$ の3つの内角の大きさを求めよ。*
  3. ベクトル $\vec a = (1, 2, 2)$ が $x$ 軸、$y$ 軸、$z$ 軸の正の向きとなす角を、それぞれ $\alpha,\ \beta,\ \gamma$ とする。
    1. $\cos \alpha,\ \cos \beta,\ \cos \gamma$ の値を求めよ。
    2. $\cos^2 \alpha + \cos^2 \beta + \cos^2 \gamma$ の値を求めよ。
  4. ベクトル $\vec a = (2, 0, 2),\ \vec b = (1, 2, 3)$ について、$\vec a-\vec b$ と $\vec a$ は垂直であることを示せ。
  5. $x$ 軸、$y$ 軸の正の向きとなす角がそれぞれ$45^\circ,\ 60^\circ$、大きさ2のベクトルの成分を求めよ。このベクトルの $z$ 軸の正の向きとなす角は何度か。
ウィンドウ内でのマウスドラッグ、ホイールスクロールで視点を変更できます。

Answer

    1. $6,\ 60^\circ$ 
    2. $3,\ 45^\circ$ 
    3. $-7,\ 120^\circ$
  1. $\overrightarrow{\mathrm{AB}}=(0,1,-1),\ \overrightarrow{\mathrm{AC}}=(-2,-1,-1),\ \overrightarrow{\mathrm{AB}} \cdot \overrightarrow{\mathrm{AC}}=0$ より $\angle \mathrm{A}=90^\circ$
    $\overrightarrow{\mathrm{BA}}=(0,-1,1),\ \overrightarrow{\mathrm{BC}}=(-2,-2,0),\ \angle \mathrm{B}=60^\circ,\ \angle \mathrm{C}=30^\circ$
    1. $\vec a$の単位ベクトルは $(\cos \alpha,\ \cos \beta,\ \cos \gamma)$
      $\cos \alpha=\frac{1}{3},\ \cos \beta=\frac{2}{3},\ \cos \gamma=\frac{2}{3}$(方向余弦という)
    2. $1$
  2. $\vec a-\vec b=(1,-2,-1)$, $(\vec a-\vec b) \cdot \vec a=0$ より
  3. $\cos^2 \alpha+\cos^2 \beta+\cos^2 \gamma = 1$ より
    単位ベクトルは $(\cos 45^\circ,\ \cos 60^\circ,\ \pm \frac{1}{2})$
    長さ$2$だと $(\sqrt 2, 1, \pm 1)$
    $(\sqrt 2, 1, 1),\ 60^\circ$ または $(\sqrt 2, 1, -1),\ 120^\circ$

Extra Lesson

three.js editor を使って、3Dの図形を表示してみましょう。

  1. Lesson 3D 1.(1) のベクトルを表示してみましょう。
  2. Lesson 3D 2. の3点 A,B,C を表示して、内角をを確認してみましょう。
  3. Lesson 3D 4. の $\vec a-\vec b$ と $\vec a$ が垂直であることを確認してみましょう。

three.js editorの操作方法

視点移動

オブジェクトの生成、変形

データの保存

視点移動機能付の環境構築

  1. Add/Directional Light で光源を追加(2個追加して2方向から照らすのもよい)
  2. Scene に以下のコードをアタッチ
    //ベクトルの成分 Lesson 3D 1. 3)
    const A=new THREE.Vector3(1, -4, 7);
    const B=new THREE.Vector3(7 , 2, 5);
    vector(A, B, 0.05);
    	
    const C=new THREE.Vector3((A.x+B.x*2)/3, (A.y+B.y*2)/3, (A.z+B.z*2)/3);
    sphere(C, 0.5, 0xff0000);
    
    const distance=30; //原点からの距離
    
    //以下は変更しないでください
    scene.add( new THREE.AxesHelper(100) );//座標軸
    
    function sphere(position, radius, color=0xffffff){
    	const sphere = new THREE.Mesh(
    		new THREE.SphereGeometry(radius,32,16),
    		new THREE.MeshPhongMaterial({
    			color:color,
    			specular:0x444444,
    			shininess:30,
    			emissive:color&0x333333
    		})
    	);
    	sphere.position.copy(position);
    	scene.add(sphere);
    }
    
    function vector(start, end, radius, color=0xffffff){
    	const v=(new THREE.Vector3).subVectors(end,start);
    	const l=v.length();
    	const material = new THREE.MeshPhongMaterial({
    		color:color,
    		specular:0x444444,
    		shininess:30,
    		emissive:color&0x333333
    	});
    	const rotation = new THREE.Euler(
    		Math.atan2(v.z,Math.sqrt(v.x*v.x+v.y*v.y)),
    		0,
    		-Math.atan2(v.x,v.y),
    		"ZXY"
    	);
    
    	const cone=new THREE.Mesh(
    		new THREE.ConeGeometry(radius*2, radius*6, 32),
    		material
    	);
    	cone.position.copy(new THREE.Vector3).addVectors(
    		start,
    		v.clone().multiplyScalar((l-0.15)/l)
    	);
    	cone.rotation.copy(rotation);
    	scene.add(cone);
    
    	const cylinder=new THREE.Mesh(
    		new THREE.CylinderGeometry(radius,radius,l-0.3,32),
    		material
    	);
    	cylinder.position.copy(new THREE.Vector3).addVectors(
    		start,
    		v.clone().multiplyScalar(0.5*(l-0.3)/l)
    	);
    	cylinder.rotation.copy(rotation);
    	scene.add(cylinder);
    }
    
    function line(position1, position2, color=0xfffff){
    	const line = [];
    	line.push(position1);
    	line.push(position2);
    	scene.add(new THREE.Line(
    		new THREE.BufferGeometry().setFromPoints(line),
    		new THREE.LineBasicMaterial({color:color})
    	));
    }
    
    function pointermove(event){
    	const longitude=(event.offsetX/window.innerWidth-0.5)*6.28;
    	const latitude=(event.offsetY/window.innerHeight-0.5)*3;
    	camera.position.set(
    		Math.cos(longitude)*Math.cos(latitude),
    		Math.sin(latitude),
    		Math.sin(longitude)*Math.cos(latitude)
    	).multiplyScalar(distance);
    	camera.lookAt( scene.position );
    }
    

three.js editor のマニュアル


【事後学習】 内積を通じて座標値と角度との相互関係をイメージできるようになりましょう。

This site is powered by Powered by MathJax