首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在给定底面和高度坐标的情况下,找到等腰三角形的最后一个坐标

在给定底面和高度坐标的情况下,找到等腰三角形的最后一个坐标
EN

Stack Overflow用户
提问于 2008-12-07 22:43:22
回答 3查看 6.4K关注 0票数 2

我对三角函数一无所知,尽管我很久以前就在学校里学过它,我想这应该很简单,但是在网上翻找大量的三角函数让我头疼:)所以也许有人可以帮助我……

标题确切地解释了我想要做的事情,我有一行: x1,y1和x2,y2,我想要一个函数来找到x3,y3来完成一个给定高度的等腰三角形。

为了清楚起见,线x1,y2 -> x2,y2将作为基础,并且它不会与任何轴对齐(它将以随机角度..)

有没有人有一个简单的函数??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-07 22:55:18

构造向量(x1,y1)的法线->(x2,y2)。把它放在中点((x1+x2)/2,(y1+y2)/2),然后出去一段距离h。

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

将这个单位向量的h倍加到中点。

票数 4
EN

Stack Overflow用户

发布于 2008-12-07 22:51:15

第三个点位于底面的垂直平分线上,距离直线的距离为altitude单位。

对于高度的斜率,通过平均x和y来计算底面的中点:-dx/

  1. (垂直于dy/dx)。现在就有了直线(点和坡度)。Y- my = -dx/dy * (x - mx)

=

  • y -my=-dx/dy*

  1. 替换距离公式中的变量: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 +sqrt

  1. 使用您的直线方程(从#2开始)计算另一个变量(此处为y)。
  2. 您现在有两个点;选择您想要的任何一个...

在伪代码中:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2008-12-07 22:53:09

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/348249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档