回答編集履歴
3
dd
answer
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
# 計算している部分
|
34
34
|
v = (p2 - p1) / np.linalg.norm(p2 - p1) # 直線の方向を表す単位ベクトル
|
35
|
-
h = (P - p1) @ v
|
35
|
+
h = (P - p1) @ v * v + p1 # 点 P から直線に対して下ろした垂線
|
36
36
|
Q = h + (P - h) * N # N 倍した点
|
37
37
|
```
|
38
38
|
|
2
d
answer
CHANGED
@@ -3,8 +3,15 @@
|
|
3
3
|
1. 垂線の足 h を求める。
|
4
4
|
2. ベクトル hA を N 倍する。
|
5
5
|
|
6
|
-
垂線の足hは、
|
6
|
+
垂線の足hは、[内積の性質](https://qiita.com/kenmatsu4/items/a144047c1b49aa8c7eb0)
|
7
7
|
|
8
|
+
```
|
9
|
+
ベクトルa, b のなす角をθとしたとき、
|
10
|
+
cosθ = a・b / |a||b|
|
11
|
+
```
|
12
|
+
|
13
|
+
を使って、以下のようにして求めます。
|
14
|
+
|
8
15
|
[geometry - Finding a perpendicular vector from a line to a point - Mathematics Stack Exchange](https://math.stackexchange.com/questions/1398634/finding-a-perpendicular-vector-from-a-line-to-a-point)
|
9
16
|
|
10
17
|
## コード
|
1
d
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
点Aから直線に下ろした垂線の足さえ求まれば、あとは以下のようにすればよいです。
|
2
2
|
|
3
3
|
1. 垂線の足 h を求める。
|
4
4
|
2. ベクトル hA を N 倍する。
|