给定顶点、底中点和底宽,如何找到等腰三角形的所有点?
How do I find all points of an isosceles triangle given the vertex point, base midpoint, and base width?
我正在尝试制作一个正确旋转的等腰三角形。我有以下数据:
- 顶点的
(x, y)
坐标,A
- 底座中点的
(x, y)
坐标,am
- 底座的宽度,a
我需要找到另外两个点的坐标,B 和 C。
仅使用上述信息找到最后两个点的算法是什么?搜索 Google 只是让我得到了很多假设它直接指向上方的方程式,但我需要这些放置在之前执行转换。
找到B
和C
:
- 求归一化方向向量
a_mA = (A - a_m)/|A - a_m|
- 找到一个与向量
a_mA
正交的向量——我们称它为 a_mA'
a_mA' = (-a_mA.y, a_mA.x)
- 找到
B
,向a_mA'
方向步进width/2
个单位并添加a_m
:
B = (width/2)*a_mA' + a_m
- 找到
C
,向a_mA'
方向步进-width/2
个单位并添加a_m
:
C = (-width/2)*a_mA' + a_m
JsFiddle 示例:https://jsfiddle.net/asq7h2jd/
我正在尝试制作一个正确旋转的等腰三角形。我有以下数据:
- 顶点的
(x, y)
坐标,A - 底座中点的
(x, y)
坐标,am - 底座的宽度,a
我需要找到另外两个点的坐标,B 和 C。 仅使用上述信息找到最后两个点的算法是什么?搜索 Google 只是让我得到了很多假设它直接指向上方的方程式,但我需要这些放置在之前执行转换。
找到B
和C
:
- 求归一化方向向量
a_mA = (A - a_m)/|A - a_m|
- 找到一个与向量
a_mA
正交的向量——我们称它为a_mA'
a_mA' = (-a_mA.y, a_mA.x)
- 找到
B
,向a_mA'
方向步进width/2
个单位并添加a_m
:B = (width/2)*a_mA' + a_m
- 找到
C
,向a_mA'
方向步进-width/2
个单位并添加a_m
:C = (-width/2)*a_mA' + a_m
JsFiddle 示例:https://jsfiddle.net/asq7h2jd/