给出基线和高度坐标的等腰三角形的最后一个坐标

时间:2008-12-07 22:43:22

标签: function geometry

我对三角学没有任何线索,尽管在学校学习它的时候,我认为这应该是非常简单的,但是在网上搜索大量的三角形物会让我的头部受伤:)所以也许有人可以帮助我...

标题解释了我想要做什么,我有一句话: x1,y1和x2,y2 并且想要一个函数来找到x3,y3来完成一个等腰三角形,给定高度。

为了清楚起见,x1,y2行> x2,y2将是基础,它不会对齐任何轴(它将是一个随机的角度..)

有没有人有这个简单的功能?

3 个答案:

答案 0 :(得分:3)

构建向量的法线(x1,y1) - >(x2,y2)。将它放在中点((x1 + x2)/ 2,(y1 + y2)/ 2)并走出距离h。

法线看起来像( - (y2-y1),x2-x1)。将其设为单位向量(http://en.wikipedia.org/wiki/Unit_vector)。

将此单位向量的h次加到中点。

答案 1 :(得分:2)

第三点位于基座的垂直平分线上,距离直线altitude个单位。

  1. 通过平均x和y坐标来计算基点的中点。
  2. 计算海拔高度的斜率:-dx / dy(垂直于dy / dx)。你现在有你的线(点和斜率)。
    • y - my = -dx / dy *(x - mx)
  3. 用距离公式代替变量:d = sqrt(dx ^ 2 + dy ^ 2)
    1. d = sqrt((x - mx)^ 2 +(y - my)^ 2)
    2. d = sqrt((x - mx)^ 2 +( - dx / dy *(x - mx))^ 2)
    3. d ^ 2 =(x - mx)^ 2 +( - dx / dy *(x - mx))^ 2
    4. d ^ 2 - (x - mx)^ 2 =( - dx / dy *(x - mx))^ 2
    5. ±sqrt(d ^ 2 - (x - mx)^ 2)= - dx / dy *(x - mx)
    6. ±sqrt(d ^ 2 - (x - mx)^ 2)* dy / dx = x - mx
    7. ±sqrt(d ^ 2 - (x - mx)^ 2)* dy / dx + mx = x
    8. x =±sqrt(d ^ 2 - (x - mx)^ 2)* dy / dx + mx
  4. 使用线方程(来自#2)计算另一个变量(y)。
  5. 你现在有两点;挑选你想要的......
  6. 在伪代码中:

    dx = x1 - x2
    midpoint = ((x1 + x2) / 2, (y1 + y2) / 2)
    slope = -dx / (y1 - y2)
    x = sqrt(altitude*altitude - dx*dx) / slope + midpoint.x
    y = slope * (x - midpoint.x) + midpoint.y
    

    这可能不是最理想的方法。不确定它是否有效。的xD

答案 2 :(得分:0)

我记得,等腰三角形的边长相等,底边的角度相等。如果你有高度,那么你有最终坐标,因为这将是交叉点,对吗?