teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

基本事項について

2016/03/25 10:49

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -18,4 +18,23 @@
18
18
  従って**d**は、**c⊥**を**c⊥**の長さで割って、(=長さを1にして)100倍したものです:
19
19
  **d** = 100 * **c⊥**/|**c⊥**|
20
20
 
21
- **d**が求まったので、**a'**,**b'**が求まります。
21
+ **d**が求まったので、**a'**,**b'**が求まります。
22
+
23
+
24
+ ---
25
+
26
+ 前提知識
27
+
28
+ 点V (x,y) の位置ベクトルを**v** = (x,y)などと書きます。
29
+ 原点をO (0,0)とすれば→OV = (x,y)などとも書きます。
30
+
31
+ **v1** = (x1, y1)
32
+ **v2** = (x2, y2)のとき
33
+ **v1** + **v2** = (x1+x2, y1+y2)です。
34
+
35
+ **v** = (x,y)の長さを|**v**|などと表し、
36
+ |**v**| = √(x^2 + y^2)です。
37
+
38
+ **v**=(x,y)を定数c倍したものは
39
+ c * **v** = (c * x , c * y)
40
+

3

垂直について

2016/03/25 10:49

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -12,6 +12,7 @@
12
12
  まず、元の直線に垂直なベクトル**c⊥**を算出します。
13
13
  これは**c**(=**b**-**a**)に垂直なベクトルです。
14
14
  (2つ方向の候補がありますが目的にあっているものを選んでください)
15
+ **c**のx成分とy成分を入れ替えてどちらかの成分を−1倍するのが一番手軽ですね
15
16
 
16
17
  **d**は、**c⊥**と同じ向きで、長さが100のものです。
17
18
  従って**d**は、**c⊥**を**c⊥**の長さで割って、(=長さを1にして)100倍したものです:

2

図の挿入、説明を図に合わせる

2016/03/25 09:14

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -1,5 +1,20 @@
1
+ ![イメージ説明](82cbff7a1df9885da662a6f1a38b73ed.png)
2
+
3
+ (ベクトルは太字で書きます。)
4
+
5
+ 既知なのは
6
+ **a**=(300,300),**b**=(700,500),および**d**の長さ(=100)、
7
+ 知りたいのは
8
+ **a'**(=**a**+**d**),**b'**(=**b**+**d**)ですね。
9
+ **a**,**b**は既知なので、**d**を求めればいいことになります。
10
+ (これすら腑に落ちない場合は言ってください。)
11
+
1
- 元の直線に垂直な単位ベクトルを算出します。
12
+ まず、元の直線に垂直なベクトル**c⊥**を算出します。
13
+ これは**c**(=**b**-**a**)に垂直なベクトルです。
2
- (2つ候補がありますが目的にあっているものを選んでください)
14
+ (2つ方向の候補がありますが目的にあっているものを選んでください)
3
- ユーザー入力の移動量dを求めた単位ベクトルに掛けて移動ベクトルとします
15
+
4
- 直線始点と終点にそれぞれ移動ベクトルを加算します。
16
+ **d**は、**c⊥**と同じ向きで、長さが100す。
17
+ 従って**d**は、**c⊥**を**c⊥**の長さで割って、(=長さを1にして)100倍したものです:
18
+ **d** = 100 * **c⊥**/|**c⊥**|
19
+
5
- 移動後の点を結べば平行移動し直線になります。
20
+ **d**が求まっので、**a'**,**b'**が求まります。

1

単位ベクトルについて

2016/03/25 07:36

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  元の直線に垂直な単位ベクトルを算出します。
2
+ (2つ候補がありますが目的にあっているものを選んでください)
2
3
  ユーザー入力の移動量dを求めた単位ベクトルに掛けて移動ベクトルとします
3
4
  元の直線の始点と終点にそれぞれ移動ベクトルを加算します。
4
5
  移動後の点を結べば平行移動した直線になります。