Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 求等腰三角形的最后一个坐标,给出基准坐标和高度坐标_Function_Geometry - Fatal编程技术网

Function 求等腰三角形的最后一个坐标,给出基准坐标和高度坐标

Function 求等腰三角形的最后一个坐标,给出基准坐标和高度坐标,function,geometry,Function,Geometry,我对三角学一无所知,尽管我早在上学的时候就开始学三角学了,我觉得这应该很简单,但是在网上浏览大量的三角知识会让我头疼:)所以也许有人能帮我 标题正好说明了我想做什么,我有一句话: x1,y1和x2,y2 需要一个函数来求x3,y3,来完成一个等腰三角形,给定高度 为了清楚起见,直线x1,y2->x2,y2将是基准线,它不会与任何轴对齐(它将以随机角度..) 有人对此有简单的功能吗???第三个点在你的基地的垂直平分线上,并且距离线高度单位 通过求x和y坐标的平均值来计算基准的中点 计算您的海拔坡度

我对三角学一无所知,尽管我早在上学的时候就开始学三角学了,我觉得这应该很简单,但是在网上浏览大量的三角知识会让我头疼:)所以也许有人能帮我

标题正好说明了我想做什么,我有一句话: x1,y1和x2,y2 需要一个函数来求x3,y3,来完成一个等腰三角形,给定高度

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


有人对此有简单的功能吗???

第三个点在你的基地的垂直平分线上,并且距离线
高度
单位

  • 通过求x和y坐标的平均值来计算基准的中点
  • 计算您的海拔坡度:-dx/dy(垂直于dy/dx)。现在您有了直线(点和坡度)。
    • y-my=-dx/dy*(x-mx)
  • 在距离公式中替换变量:d=sqrt(dx^2+dy^2)
  • d=sqrt((x-mx)^2+(y-my)^2)
  • d=sqrt((x-mx)^2+(-dx/dy*(x-mx))^2)
  • d^2=(x-mx)^2+(-dx/dy*(x-mx))^2
  • d^2-(x-mx)^2=(-dx/dy*(x-mx))^2
  • ±sqrt(d^2-(x-mx)^2)=-dx/dy*(x-mx)
  • ±sqrt(d^2-(x-mx)^2)*dy/dx=x-mx
  • ±sqrt(d^2-(x-mx)^2)*dy/dx+mx=x
  • x=±sqrt(d^2-(x-mx)^2)*dy/dx+mx
  • 使用直线方程(从#2)计算另一个变量(此处为y)
  • 你现在有两点;随便选一个
  • 在伪代码中:

    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
    

    这可能不是最理想的方法。不确定它是否有效。我记得等腰三角形的边长相等,底边的角度相等。如果你有高度,那么你就有了最终坐标,因为这将是交点,对吗?

    构造一条向量(x1,y1)->(x2,y2)的法线。将其放置在中点((x1+x2)/2,(y1+y2)/2)并离开一段距离h

    法线看起来像(-(y2-y1),x2-x1)。将其设为单位向量()


    将h乘以这个单位向量加到中点。

    在我看来非常有效,除非你关心退化情况(dx=0或dy=0)。很好的解释!用预先完成的数学进行了更新。谢谢你的补充,亚当。这是我希望得到的答案(伪代码xD),但似乎有一个小问题,altitudealtitude-dxdx的值通常是负数,当然我们不能得到。。。有什么想法吗???@Aidan,嗯,从没想过。也许走简单的路线,做sqrt(abs(…)?好主意。。。我从来没有想过。谢谢大家,这和斯特拉格的回答非常有用,最终我结束了使用单位向量法,它工作得很好。